L_TransformFile

# include“l_bitmap.h”

L_LTFIL_APIL_INTL_TransformFile(pszFileSrc, pszFileDst, uTransform, pfnCallback, pUserData, pLoadOptions)

为某些格式执行无损转换。目前只支持JPEG、CMP和TIFF格式。

参数

L_TCHAR* pszFileSrc

包含源文件名的字符串。

L_TCHAR* pszFileDst

包含目标文件名的字符串。

L_UINTuTransform

指示要执行的转换的二进制标志。可能取值为:

价值 意义
FILE_TRANSFORM_FLIP [0x0001]翻转图像。
FILE_TRANSFORM_REVERSE [0x0002]反转图像。
FILE_TRANSFORM_ROTATE90 [0x0004]将图像顺时针旋转90度。
FILE_TRANSFORM_ROTATE180 [0x0008]将图像顺时针旋转180度。
FILE_TRANSFORM_ROTATE270 [0x000C]将图像顺时针旋转270度。
0 什么也不做。

TRANSFORMFILECALLBACKpfnCallback

处理自定义标记的可选回调函数。(这只对旋转JPEG文件有用)。转换JPEG文件时,该函数将枚举文件中包含的所有标记,并将它们传递给这个回调。用户可以控制所有标记的转换。有关JPEG标记的更多信息,请参阅JPEG规范。

如果不提供回调函数,则使用NULL作为该参数的值,并且不会转换JPEG标记。

如果提供回调函数,则使用函数指针作为此参数的值。

回调函数必须遵循中描述的函数原型TRANSFORMFILECALLBACK函数

L_VOID* pUserData

可用于传递回调函数所需的一个或多个附加参数的空指针。

要使用此特性,请为变量赋值或创建包含所需字段的结构。然后,在这个参数中,传递变量或结构的地址,将其强制转换为L_VOID*。回调函数在自己的pUserData形参中接收地址,可以将其转换为适当数据类型的指针以访问变量或结构。如果不需要附加参数,则可以在此参数中传递NULL。

pLOADFILEOPTIONpLoadOptions

指向可选扩展加载选项的指针。传递NULL以使用默认的加载选项(第一页)。这只对转换TIFF文件有用。加载选项将指定应该转换哪个页面。

返回

价值 意义
成功 活动很成功。
< 1 发生错误。指返回代码

评论

只能指定一个旋转标志。

由该函数转换的文件将被其他能够读取这些文件格式的应用程序转换。

中指定的标志对JPEG和Exif JPEG标记进行转换uTransform。请注意,这个函数不会转换某些JPEG戳。具体来说,存储在APP0和APP1之外的标记中的标记将不会被转换。使用TRANSFORMFILECALLBACK函数来处理这些情况。例如,如果一个戳记在APP14标记中,那么在TRANSFORMFILECALLBACK函数中检查它并使用它来编写您自己的戳记L_WriteFileStamp

对于JPEG文件,图像的大小可能会改变。图像宽度和高度被调整为8或16的倍数,这取决于图像中存在的子采样。如果图像是4:4:4,宽度和高度被调整为16的倍数。如果图像是422,原始宽度将被调整为16的倍数,高度将被调整为8的倍数。旋转之后,宽度可能变成高度。如果图像是411,宽度和高度将被调整为16的倍数。

这种转变是快速和无损的。它比加载图像,转换它使用更好L_RotateBitmapL_FlipBitmapL_ReverseBitmap并保存它。重复加载和保存过程会很慢,导致图像退化,但调用这个函数会很快,不会导致任何图像退化。

旋转转换在翻转/反向操作之前执行。

必需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

这个示例将文件旋转90度。

L_INT TransformFileExample (L_VOID){L_INT nRet;L_TransformFile (MAKE_IMAGE_PATH(TEXT(“ImageProcessingDemo \ \ Image1.jpg”)), MAKE_IMAGE_PATH(文本(“Transformed.JPG”)), file_transform_rotate90, null, null, null);如果(nRet != SUCCESS)返回nRet;返回成功;}

栅格成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。