該**主要使用libtiff庫,將t.6 格式檔案轉換成 t.4格式。
int tiff2tiff(char *psrcfile, char *pdstfile)
if ((outiff = tiffopen(pdstfile, "w")) == null)
//獲取原始檔的配置資訊
tiffgetfield(intiff, tifftag_imagewidth, &width); // 得到寬度
tiffgetfield(intiff, tifftag_imagelength, &height); // 得到高度
tiffgetfield(intiff, tifftag_samplesperpixel, &samplesperpixel); // bits per channel (sample) 每個通道(樣本)(1bit或者8bit)
tiffgetfield(intiff, tifftag_bitspersample, &bitspersample); // samples per pixel 每畫素取樣(1通道或者3通道)
tiffgetfield(intiff, tifftag_xresolution, &xresolution); // x解析度
tiffgetfield(intiff, tifftag_yresolution, &yresolution); // y解析度
ntotalframe = tiffnumberofdirectories(intiff); // 獲取檔案總頁數
// read in the possibly multiple strips
stripsize = tiffstripsize(intiff);
stripmax = tiffnumberofstrips(intiff);
buffersize = tiffnumberofstrips(intiff) * stripsize;
if ((buffer = (char*)malloc(buffersize)) == null)
//將fax4資訊分頁寫入到fax3中
for (pagenum = 0; pagenum < ntotalframe; pagenum++)
imageoffset += result;
} tiffsetfield(outiff, tifftag_pagenumber, pagenum); //頁面數
tiffsetfield(outiff, tifftag_imagewidth, width);
tiffsetfield(outiff, tifftag_imagelength, height);
tiffsetfield(outiff, tifftag_bitspersample, bitspersample);
tiffsetfield(outiff, tifftag_samplesperpixel, samplesperpixel);
tiffsetfield(outiff, tifftag_rowsperstrip, height);
tiffsetfield(outiff, tifftag_compression, compression_ccitt_t4); //壓縮格式
tiffsetfield(outiff, tifftag_photometric, photometric_miniswhite);
tiffsetfield(outiff, tifftag_fillorder, fillorder_msb2lsb);
tiffsetfield(outiff, tifftag_planarconfig, planarconfig_contig);
tiffsetfield(outiff, tifftag_xresolution, xresolution); //畫素解析度-x
tiffsetfield(outiff, tifftag_yresolution, yresolution); //畫素解析度-y
tiffsetfield(outiff, tifftag_resolutionunit, resunit_inch);
tiffwriteencodedstrip(outiff, 0, buffer, buffersize); //寫檔案
tiffwritedirectory(outiff);
} //關閉檔案
tiffclose(outiff);
tiffclose(intiff);
free(buffer);
return 1;
}
TIF檔案Thumbnils生成
在專案中希望實現對於tif的thumbnail的獲取,但是如果在獲取tif檔案後實時生成,效能方面較差。因此我採用的方案是檔案獲取一次,生成thumbnail塞入tif檔案中,以提高效能那個。使用開源專案 github net.coobirdgroupid thumbnailatorartifact...
libtiff使用小記
這兩天就跟libtiff庫卯上了,總會遇到奇怪的問題。現在問題或直接或曲折的解決了,一一記錄下來。問題一 tiffsetdirectory函式的使用。目的 交叉讀取tiff中兩頁的每一行,假設第一頁tif為tif 0,第二頁tif為tif 1。我的目的就是先讀tif 0的第i行,然後讀tif 1的第...
libtiff使用小記
這兩天就跟libtiff庫卯上了,總會遇到奇怪的問題。現在問題或直接或曲折的解決了,一一記錄下來。問題一 tiffsetdirectory函式的使用。目的 交叉讀取tiff中兩頁的每一行,假設第一頁tif為tif 0,第二頁tif為tif 1。我的目的就是先讀tif 0的第i行,然後讀tif 1的第...