L_SaveFile

# include“l_bitmap.h”

L_LTFIL_APIL_INTL_SaveFile (pszFile、pBitmap nFormat、nBitsPerPixel nQFactor, uFlags, pfnCallback, pUserData, pSaveOptions)

创建了一个文件在任何支持的压缩和未压缩格式,使用您的回调函数的输入数据供应。

参数

L_TCHAR* pszFile

字符串包含图像文件的名称保存。

pBITMAPHANDLEpBitmap

位图句柄指针描述数据保存。位图句柄可以包含实际的数据,但是不需要,因为你的回调函数可以提供数据。

然而,位图句柄必须包含以下字段的值:宽度、高度,BitsPerPixel, BytesPerLine, nColors, ViewPerspective,秩序,DitheringMethod。(BytesPerLine值必须是4的倍数)。

L_INTnFormat

输出文件格式。有效值,请参考文件包含在您的应用程序

L_INTnBitsPerPixel

生成的文件的像素的深度。注意,并非所有比特每像素可用于所有文件格式。有效值,请参考文件包含在您的应用程序。如果nBitsPerPixel为0,该文件将存储使用衣柜BitsPerPixel价值支持的格式。例如,如果一个文件格式支持1,4,和24 BitsPerPixel,pBitmap- > BitsPerPixel是5,该文件将存储为24位。同样,如果pBitmap - > BitsPerPixel是2,文件将存储为4位。

L_INTnQFactor

这个参数时使用一个图像保存到文件格式,支持品质因数(QFactor)。QFactor是一个数决定压缩过程中损失的程度。

为可能的值,请参考压缩质量的因素

L_UINTuFlags

二进制信号,确定L_SaveFile的行为。您可以指定以下值之一:

价值 意义
SAVEFILE_FIXEDPALETTE [0 x0001]的函数使用固定的调色板图像保存为8位/像素或更少。
SAVEFILE_OPTIMIZEDPALETTE [0 x0002]函数使用个人形象的优化的调色板图像保存为8位/像素或更少。优化面板必须包括位图的句柄。
SAVEFILE_MULTIPAGE [0 x0004]函数保存图像在多页文件。它附加文件中的最后一个形象。您可以保存多页图像图形文件,GIF,大多数TIFF文件格式(包括JTIF,但不包括EXIF)。
SAVEFILE_GRAYOUTPUT [0 x0008]函数保存图像灰度。

FILESAVECALLBACKpfnCallback

可选的回调函数进行额外的处理。

如果你不提供一个回调函数,使用NULL作为该参数的值。

如果你提供一个回调函数,使用函数指针作为该参数的值。

回调函数必须遵守语法中描述FILESAVECALLBACK函数

L_VOID* pUserData

空指针,您可以使用它通过一个或多个回调函数需要额外的参数。

要使用该功能,赋值给一个变量或创建一个结构,其中包含你需要的尽可能多的领域。然后在这个参数,通过变量的地址或结构,铸件L_VOID*。回调函数,接收地址的pUserData参数,可以把它适当的数据类型的指针来访问变量或结构。如果不需要额外的参数,该参数可以传递NULL。

pSAVEFILEOPTIONpSaveOptions

指针可选的扩展保存选项。通过零使用默认的保存选项。

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

如果您提供一个回调函数,它必须提供图像数据。它还可以做其他有用的事,比如更新状态栏。

如果你不提供一个回调函数,这个函数从指定的位图保存数据。

如果你使用一个回调并保存位图作为MacPaint (MAC)文件,图片被保存576年必须有一个宽度和一个高度720(所需的维度的格式)。

支持12和16位灰度图像仅仅是可用的文档和医疗成像工具包。

笔记:

这个函数支持签名数据图像,但只有DICOM和TIFF格式支持签名数据。这个函数将返回一个错误,如果你试图拯救一个签署了非DICOM格式或TIFF图像。

的信息保存位图窗口夷为平地,请参考储蓄Window-Leveled位图

如果位图有一个地区,该地区存储位图将被保存,如果图像保存的TIFF文件格式。

你可以将一个文件格式转换成另一个当你保存一个文件。您还可以使用高级功能,L_FileConvert,将任何可能的格式转换成任何其他可能的格式。

LEADTOOLS版本17,在保存一个彩色图像时(比如每像素24位映像)双调的(每像素比特),工具箱将不会使用任何转换图像数据时犹豫不决。这样做是因为犹豫不决不推荐当转换彩色图像包含文本文档处理如OCR和条形码。结果文本将模糊,很难识别引擎的过程。保存与Floyd-Stein双调的彩色图像抖动(LEADTOOLS 16.5和更早的行为)使用ESO_USEDITHERINGMETHOD BITMAPHANDLE。DitheringMethod,如下图所示:

/ /“pBitmap”是一个彩色BITMAPHANDLE/ /设置FloydStein抖动:bitmapHandle。DitheringMethod = FLOYD_STEIN_DITHERING;SAVEFILEOPTION saveOptions = {0};L_GetDefaultSaveFileOption(其运算符(SAVEFILEOPTION));其。旗帜| = ESO_USEDITHERINGMETHOD;/ /保存位图与auto-dithering 1-bpp:L_SaveBitmap(文件名,&bitmapHandle FILE_CCITT_GROUP4 1 0 saveoptions);/ /或任何其他L_SaveBitmapXyz或L_SaveFileXyz等功能:/ / L_SaveFile(文件名,&bitmapHandle FILE_CCITT_GROUP4 1 0 0,空,空,其)

NITF文件包含光栅和non-raster数据所以NITF文件使用标准光栅库不能得救。使用单独的NITF库创建和保存NITF文件。

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

例子

为完整的示例代码,参考SAVECB
的例子。
这个示例使用L_SaveFile提供图像数据的一个回调函数。
指FILESAVECALLBACK函数回调函数如何供应
图像数据。

L_INT EXT_CALLBACK SaveImageCB (pBITMAPHANDLE pBitmap,L_UCHAR * pbuf,L_UINT nRowBegin,L_UINT nRowsToGet,L_VOID * pUserData);L_INT SaveFileExample(实例句柄hInst, / *当前应用程序的实例,设置的InitInstance函数* /pBITMAPHANDLE LeadBitmap){L_INT nRet;/ *返回价值* /L_TCHAR szMessage [80];/ *缓冲对话框字符串* /UNREFERENCED_PARAMETER (hInst);/ *设置抖动的方法保存* /LeadBitmap - > DitheringMethod = FLOYD_STEIN_DITHERING;/ *保存文件作为一个8位Windows BMP文件固定面板* // *设置回调函数L_SaveFile函数。* /nRet = L_SaveFile (MAKE_IMAGE_PATH(文本(“TEST2.BMP”)),LeadBitmap,FILE_BMP 8 0,SAVEFILE_FIXEDPALETTE,SaveImageCB,空,零);/ *通知用户提供一个消息框* /如果(nRet = =成功){对话框(NULL,文本(“文件保存”),文本(“通知”),MB_OK);}其他的{wsprintf (szMessage文本(“错误% d保存文件”),nRet);对话框(NULL, szMessage文本(“错误”),MB_OK);返回nRet;}返回成功;}

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