tiff增加单色图像压缩方式CCITTFAX4

This commit is contained in:
luoliangyi 2022-05-27 11:53:30 +08:00
parent 9cd7e4573d
commit bdaad90a5e
2 changed files with 7 additions and 31 deletions

View File

@ -321,36 +321,11 @@ HGResult HGAPI HGImgFmt_SaveImageToTiffWriter(HGTiffWriter writer, HGImage image
TIFFSetField(tif, TIFFTAG_IMAGELENGTH, height);
TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, bitsPerSample);
TIFFSetField(tif, TIFFTAG_SAMPLESPERPIXEL, samplesPerPixel);
TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, (1 == samplesPerPixel) ? PHOTOMETRIC_PALETTE : PHOTOMETRIC_RGB);
TIFFSetField(tif, TIFFTAG_PHOTOMETRIC, (1 == samplesPerPixel) ? PHOTOMETRIC_MINISBLACK : PHOTOMETRIC_RGB);
TIFFSetField(tif, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(tif, TIFFTAG_ROWSPERSTRIP, height);
TIFFSetField(tif, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
if (HGBASE_IMGTYPE_BINARY == type)
{
uint16 rTable[2], gTable[2], bTable[2];
//#pragma omp parallel for
for (int32_t i = 0; i < 2; ++i)
{
rTable[i] = i * 255;
gTable[i] = i * 255;
bTable[i] = i * 255;
}
TIFFSetField(tif, TIFFTAG_COLORMAP, rTable, gTable, bTable);
}
else if (HGBASE_IMGTYPE_GRAY == type)
{
uint16 rTable[256], gTable[256], bTable[256];
//#pragma omp parallel for
for (int32_t i = 0; i < 256; ++i)
{
rTable[i] = i;
gTable[i] = i;
bTable[i] = i;
}
TIFFSetField(tif, TIFFTAG_COLORMAP, rTable, gTable, bTable);
}
if (NULL != info)
{
TIFFSetField(tif, TIFFTAG_COMPRESSION, info->compression);

View File

@ -11,6 +11,7 @@ HG_DECLARE_HANDLE(HGTiffWriter);
/* 压缩方式 */
#define HGIMGFMT_TIFFCOMP_NONE 1L
#define HGIMGFMT_TIFFCOMP_CCITTFAX4 4L
#define HGIMGFMT_TIFFCOMP_LZW 5L
#define HGIMGFMT_TIFFCOMP_JPEG 7L