SAVEFILEOPTION

类型定义结构体_SAVEFILEOPTION{L_UINTuStructSize;L_INTReserved1;L_INTReserved2;L_UINT国旗;L_INT通过;L_INTPageNumber;L_INTGlobalWidth;L_INTGlobalHeight;L_UINTGlobalLoop;L_COLORREFGlobalBackground;L_RGBQUADGlobalPalette [256];L_UINTStampWidth;L_UINTStampHeight;L_UINTStampBitsL_IFDTYPEIFD;L_TCHARszPassword [255];PHOTMTRICINTERPPhotometricInterpretation;L_UINTTileWidth;L_UINTTileHeight;L_UINTFlags2;* pSAVEFILEOPTION} SAVEFILEOPTION;

SAVEFILEOPTION编写一个图像文件结构指定额外的选项。看到L_GetDefaultSaveFileOption为默认的保存选项的信息。

成员

uStructSize

的大小SAVEFILEOPTION结构。这应该是sizeof (SAVEFILEOPTION)。一定要填补这个成员。

Reserved1

保留以供将来使用。通过0。

Reserved2

保留以供将来使用。通过0。

旗帜

下列标志。(用一位或指定多个值。)也看到了Flags2成员为额外的旗帜。

价值 意义
ESO_REVERSEBITS [0 x00000001]颠倒了位顺序写作时CCITT组3和4文件和原始未压缩的数据,所以最低有效位(LSB)是第一位。
ESO_NOSUBFILETYPE [0 x00000002]防止写子文件类型TIFF标签在编写任何TIFF文件。
ESO_GLOBALBACKGROUND [0 x00000004]将使一个GIF文件保存与全球背景颜色GlobalBackground指定的字段。
ESO_GLOBALPALETTE [0 x00000008]将使一个GIF文件保存与全球面板GlobalPalette指定的字段。
ESO_INTERLACED [0 x00000010]导致一个GIF文件被保存为一个交错的文件。
ESO_GLOBALLOOP [0 x00000020]使循环时加载一个动画文件。该标志必须GlobalLoop领域使用。
ESO_NOPALETTE [0 x00000040]导致TIFF或PNG文件保存为灰度,没有一个调色板。
ESO_SAVEWITHSTAMP [0 x00000080]导致CMP、JPEG或Exif文件保存与邮票(缩略图),除了正常的形象。
ESO_FIXEDPALETTESTAMP [0 x00000100]导致CMP或JPEG邮票图像与固定板得救。
ESO_YCCSTAMP [0 x00000200]造成Exif邮票图像与YCbCr保存颜色空间。
ESO_REPLACEPAGE [0 x00000400]替换PageNumber指定的页面。
ESO_INSERTPAGE [0 x00000800]插入PageNumber指定的新页面之前的页面。
ESO_JPEGSTAMP [0 x00001000]保存JPEG压缩的邮票。
ESO_DISABLEMMX [0 x00002000]不要用MMX优化代码。
ESO_SAVEOLDJTIF [0 x00004000]写道旧式JTIF文件。
ESO_NOPAGENUMBER [0 x00008000]不更新并保存相关PageNumber标签的页面多页TIFF文件。
ESO_DISABLEP3 (0 x00010000)不使用P3-specific优化代码。
ESO_USEIFD [0 x00020000]使用IFD抵消。
ESO_MOTOROLAORDER 在摩托罗拉[0 x00040000]保存文件字节顺序。
ESO_WITHOUTTIMESTAMP 没有时间戳[0 x00080000]保存文件。
ESO_PDF_TEXT_ENCODING_NONE [0 x00000000]没有文本编码用于图像数据。
ESO_PDF_TEXT_ENCODING_ASCII_BASE85 [0 x00100000] PDF, ASCII基地85文本编码用于图像数据。
ESO_PDF_TEXT_ENCODING_ASCII_HEX [0 x00200000] PDF, ASCII文本十六进制编码用于图像数据。
ESO_PDF_ENCODING_MASK [0 x00300000]面具的国旗用于PDF文本编码。
ESO_PDF_SAVE_USE_BITMAP_DPI [0 x01000000]使用位图DPI计算页面维度在保存一个PDF文件。
ESO_PAD4 [0 x00400000]垫每一行4个字节的倍数。(原始数据)。
ESO_PLT_BEZIER_CURVES [0 x00800000] PLT过滤器应该节约贝塞尔曲线。
ESO_PDF_SAVE_USE_BITMAP_DPI [0 x01000000]使用位图DPI计算页面维度在保存一个PDF文件。
ESO_PHOTOMETRICINTERPRETATIONVALID [0 x02000000]时使用PhotometricInterpretation储蓄TIFF文件。
ESO_TILEINFOVALID [0 x04000000]使用TileWidth和TileHeight成员在保存TIFF文件。
ESO_USEDITHERINGMETHOD [0 x08000000]使用DitheringMethod BITMAPHANDLE。
ESO_PRESERVEPALETTE [0 x10000000]保存调色板TIFF CCITT在保存文件(可能会降低压缩比)。
ESO_PDF_SAVE_LOW_MEMORY_USAGE [0 x20000000]试图创建一个PDF文件时使用更少的内存和JPEG压缩或传真。
ESO_GENERATEGLOBALPALETTE (0 x40000000)生成一个全球面板在保存GIF文件。
ESO_USEPREDICTOR [0 x80000000] LZW数据保存时使用一个预测。气管无名动脉瘘管的这是LZW或生8 bpp LZW数据或更多。这个标志将被忽略,如果小于8 bpp的LZW数据。

通过

传球的数量(扫描图片)保存JPEG或导致CMP文件。(不使用这个值在保存交错PNG文件。)

可能的值在保存

价值 意义
任何正数 干腊肠的文件作为一个进步的文件指定数量的传球。
0 将文件保存为一个JPEG或普通铅CMP文件(不是一个渐进的文件)。
任何一个负数 保存文件作为进步的文件数量LEADTOOLS默认的传递。

可能的值在保存非渐进式文件

价值 意义
0 保存文件与固定霍夫曼表(更快的节省,更低的压缩)。
< > 0 保存文件,优化霍夫曼表(2-pass压缩、低速度、更高的压缩)。

PageNumber

多页的页码文件,该文件可以包含多个图像。在保存一个文件,任何大于1的值将导致页面附加到文件的末尾。多页文件的更多信息,请参考多页文件格式

GlobalWidth

宽度的图像在多页GIF文件。

GlobalHeight

高度的图像在多页GIF文件。

GlobalLoop

当播放动画循环计数。为连续循环使用0。没有循环,关掉ESO_GLOBALLOOP国旗的标志字段。

GlobalBackground

背景颜色的图像在多页GIF文件。这个字段是使用只有ESO_GLOBALBACKGROUND国旗标志字段中设置。也就是说指定一个值,如Windows RGB宏观的返回值,或使用PALETTEINDEX宏指定一个调色板的颜色。

GlobalPalette

调色板图像在多页GIF文件。这个字段是使用只有ESO_GLOBALPALETTE国旗标志字段中设置。

StampWidth

宽度,以像素为单位的印章图像保存。邮票保存只有ESO_SAVEWITHSTAMP国旗标志字段中设置。

StampHeight

高度,以像素为单位,邮票的图像保存。邮票保存只有ESO_SAVEWITHSTAMP国旗标志字段中设置。

StampBits

每像素比特的邮票图像保存。邮票保存只有ESO_SAVEWITHSTAMP国旗标志字段中设置。

IFD

抵消在TIFF文件一页开始的地方。这作为一个参考页面页面保存到一个大TIFF文件。根据TIFF规格,最小值第一IFD是8。

szPassword

密码保存加密的文件。

PhotometricInterpretation

(仅TIFF)光度解释应该保存在文件而不是常规的价值。只有ESO_PHOTOMETRICINTERPRETATIONVALID设置使用。

TileWidth

瓷砖的宽度时使用储蓄TIFF文件。这个值是在像素。使用只有ESO_TILEINFOVALID集。这个值可能会略有修改,如果必要的。细节参见下面提到的模式。

TileHeight

高度的瓷砖时要使用储蓄TIFF文件。这个值是在像素。使用只有ESO_TILEINFOVALID集。这个值可能会略有修改,如果必要的。细节参见下面提到的模式。

Flags2

下列标志(使用位或指定超过一个值)。也看到了旗帜成员为额外的旗帜。

价值 意义
ESO2_NITF [0 x00000001]保存文件兼容NITF需求。这个标志是在内部使用。
ESO2_SAVEPLANAR 气管无名动脉瘘管的[0 x00000002]保存CMYK图像平面(而非粗)。
ESO2_NOLZWAUTOCLEAR [0 x00000004]不自动插入明确在LZW压缩编码。
ESO2_ALPHAINIT [0 x00000010]初始化alpha通道32或64位彩色图像)所有的(0 xff为16位8位alpha通道和0 xffff阿尔法通道)。如果没有这个标志,创建alpha通道初始化零。
ESO2_XPS_SAVE_USE_BITMAP_DPI [0 x00000080]使用位图DPI计算页面维度在保存一个XPS文件。
ESO2_PDFA_PROFILE [0 x00000100]在保存为PDF,将PDF文件保存为PDF格式。
ESO2_PDF_V13 [0 x00004000]在保存为PDF,将PDF文件保存为PDF v1.3。
ESO2_PDF_V14 [0 x00000200]在保存为PDF,将PDF文件保存为PDF版。
ESO2_PDF_V15 [0 x00000400]在保存为PDF,将PDF文件保存为PDF v1.5。
ESO2_PDF_V16 [0 x00002000]在保存为PDF,将PDF文件保存为PDF v1.6。
ESO2_PDF_V17 [0 x00008000]在保存为PDF,节省的PDF文件,PDF v1.7。
ESO2_ENDWITH3EOL [0 x00000800]结束传真G3 (1 d和2 d)文件3 EOL(00 1 00 00 01)而不是EOL EOFB 01 (00 00 10 01)。
ESO2_OPTIMIZEDHUFFMAN [0 x00001000]保存JPEG文件优化霍夫曼表。
ESO2_NOGRAYCONVERT [0 x00010000]当储蓄JPX,节省12/16位灰度数据和可以处理LowBit, HighBit等等。
ESO2_BIGTIFF [0 x00020000]保存使用BigTiff TIFF文件格式,它允许TIFF文件超过4 gb。
ESO2_PDF_LINEARIZED [0 x00080000]保存线性化PDF文件(web-optimized)。

评论

pSAVEFILEOPTION是一个指针SAVEFILEOPTION结构。函数参数类型是pSAVEFILEOPTION,声明一个吗SAVEFILEOPTION变量更新结构的字段和变量的地址传递的参数。宣布pSAVEFILEOPTION变量只有在项目需要一个指针是必要的。

保存一个邮票图像是有效的为以下格式:铅,就是以前,LEAD2JFIF, LEAD1JFIF, FILE_EXIF FILE_EXIF_YCC, FILE_EXIF_JPEG。短描述,请参考文件格式:JPEG压缩和铅(JPG, J2K,对JP2,摩根大通,CMP,和小王)

在保存FILE_EXIF或FILE_EXIF_YCC邮票图像文件,邮票是附加的第二页多页文件。

在保存一个邮票时图像的Exif JPG文件,x120x24邮票大小被限制为160。保存Exif文件时,StampWidth StampHeight, StampBits的成员SAVEFILEOPTION结构将被忽略和160 (StampWidth), 120 (StampHeight)和24 (StampBits)将被使用。这种限制被强加为了符合ExifR98互操作性规则由日本数码相机制造商。save函数返回一个错误(ERROR_INVALID_STAMP_SIZE)如果这些大小限制被超过。

在处理未压缩的(TIFF) Exif文件时,邮票大小(宽度x高度x 24 bpp),没有限制的宽度和高度。

当印章图像保存在一个领导,就是以前,LEAD2JFIF,或LEAD1JFIF文件,宽度和邮票的高度都不超过255像素。此外,总体规模限制应用如下:

+ 778(宽*高)。

(宽*高* 3)+ 10。

save函数返回一个错误(ERROR_INV_RANGE)如果这些大小限制被超过。

加载邮票的图像,使用L_ReadFileStamp函数。

笔记:

默认情况下,ESO_NOPAGENUMBER不是集。因此,所有的TIFF文件保存与更新PageNumber标签。这是f级所需的兼容性。

当LEADTOOLS节省TIFF文件和PageNumber标签写道,这额外的处理附加时,插入或删除页面,如下:

  1. 当添加一个页面,PageNumber标签第一页的更新,以反映的页面数量的变化。
  2. 插入一个页面时,PageNumber页面后,将页面的标签被插入页面将被更新以反映变化指数。同时,PageNumber标记的第一个文件被更新以反映增加的页数。
  3. 当删除一个页面(通过调用L_DeletePage),第一页的PageNumber标签是更新来反映的页面数量的变化。同时,PageNumber所有的页面,页面被删除就会更新来反映他们的新指数。

这些更新通常需要很少的时间。然而,当一页插入一个TIFF文件,其中包含成千上万的图像,这些更新可能会耗时。在这种情况下,可以获得一些速度通过禁用此功能。

那么,如果ESO_NOPAGENUMBER设置L_DeletePage将不会更新PageNumber标记的任何页面。

如果ESO_NOPAGENUMBER没有设置,那么LEADTOOLS将写PageNumber标签,所以不要打电话L_SetTag设置这个标记(标签297)。

在保存原始未压缩的数据,每个字节的位能够逆转通过ESO_REVERSEBITS国旗。此外,每一行的数据可以垫的长度是4个字节的倍数通过ESO_PAD4国旗。原始数据可以保存在文件中的任何抵消使用L_SaveFileOffset函数。

平铺的TIFF图像

注意:关于加载和保存大型TIFF文件的更多信息更快,请参考大型TIFF / BigTIFF文件加载和保存。

在保存TIFF文件,瓷砖的大小或条保存在文件可以控制。

一些图形包不能加载TIFF文件,除非与某些瓷砖或带保存的文件大小。LEADTOOLS地带和瓷砖的大小可以加载文件,所以不需要修改这些设置保存文件时将装满LEADTOOLS。

如果没有设置ESO_TILEINFOVALID,那么TileWidthTileHeight的成员SAVEFILEOPTION结构将被忽略。在这种情况下,位图将被保存像LEADTOOLS以前版本的。

如果TileWidth小于或等于位图宽度,瓷砖的位图将被保存。如果TileWidth大于位图的宽度,将保存为位图。

如果位图保存为瓷砖,TileHeight控制块的高度。

如果保存为位图,TileHeight控制加沙地带的高度。图像作为一个地带通过设置可以保存TileHeight一个值大于或等于位图的高度。

一些按压(如JPEG或CMP)瓷砖的大小限制在保存文件时使用。例如,JPEG压缩需要瓷砖宽度和高度是8或16的倍数取决于选择的二次抽样。等文件,指定某些瓷砖大小(通过设置ESO_TILEINFOVALID和TileWidth TileHeight),请求的瓷砖的大小可能会更新到最近的可接受的瓷砖的大小。

请注意:当使用旗帜和Flags2成员注意不要混合国旗的位置。所有EXO_XXX旗帜旗帜成员应该设置,而ESO2_XXX国旗应该设置在Flags2成员。

ESO2_NOLZWAUTOCLEAR可以使用保存TIFF LZW文件保存时文件兼容一些车LZW解码器不能处理早期明确的规范。有些IBM解码器已知这个问题。他们不会解码铅TIFF LZW文件,除非这个标志设置。这个标志没有设置默认情况下,它允许LEADTOOLS插入清楚LZW密码和重置LZW压缩引擎如果压缩比是不够的。

IFD补偿

因为技术原因,以下限制适用于传递一个IFD抵消时通过设置IFD的成员SAVEFILEOPTION结构和PageNumber设置为1:

  1. 不可能添加标签、评论或GeoKeys IFD。可以更新现有标签、评论或GeoKeys IFD。
  2. 它不可能取代这个IFD TIFF页面所示。
  3. 不可能这IFD前添加一个页面。
  4. 不可能由这个IFD删除页面显示。

这是有可能的,然而,添加标签、评论或GeoKeys IFD遵循指定IFD的(例如,如果PageNumber > = 2),也可以替换或删除页面指定IFD, IFD后插入一个页面。

如果ESO2_BIGTIFF标志设置,文件被保存或页面将使用BigTIFF格式与64位文件偏移量而不是32位文件偏移量,定期使用TIFF文件。的格式传递给save函数决定使用哪个压缩和颜色空间。例如,如果使用FILE_TIF_J2K格式时,该文件被保存或页面将使用J2K压缩但BigTIFF对文件格式的TIFF文件格式。BigTIFF文件格式是不太常见,但可以用来保存文件> 4 gb。

TIFF和BigTIFF页面不能混合在同一个文件中。例如,它只是可能TIFF页面附加到TIFF文件和BigTIFF页面BigTIFF文件格式。试图添加/ TIFF页面插入BigTIFF反之亦然将生成ERROR_FORMAT_MISMATCH错误文件。

确定一个文件是否TIFF或BigTIFF,调用L_FileInfo函数并检查是否FILEINFO.Flags FILEINFO_BIGTIFF标志被设置。

使用SAVEFILEOPTION列表的函数

结构使用以下功能:

LEADTOOLS光栅成像C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。