L_ResizeBitmap

# include“l_bitmap.h”

L_LTKRN_APIL_INTL_ResizeBitmap(pBitmapSrc, pDestBitmap, uFlags)

从现有位图调整图像的大小,并将调整大小的图像放入目标位图中,保持原始位图不变。

参数

pBITMAPHANDLEpBitmapSrc

指向引用源位图句柄的指针。

pBITMAPHANDLEpDestBitmap

指向位图句柄的指针,该位图句柄引用包含新调整大小图像的目标位图。

L_UINTuFlags

确定调整大小选项的标志。可能取值为:

价值 意义
SIZE_NORMAL [0x0000]正常调整大小。
SIZE_FAVORBLACK [0 x0001] (文件和医疗成像工具包)在缩小图像时保留黑色物体。此选项仅影响1位黑白图像,可防止细线消失。您可以使用按位OR(|)将此标志与另一个标志组合。例如,SIZE_RESAMPLE | SIZE_FAVORBLACK会导致彩色图像重新采样,但对1位黑白图像应用favor-black选项。
SIZE_RESAMPLE [0x0002]使用线性插值和平均生成更高质量的图像。
SIZE_BICUBIC [0x0004]使用双三次插值和平均来生成更高质量的图像。这比SIZE_RESAMPLE慢。
SIZE_SCALETOGRAY [0 x0008] (文件和医疗成像工具包)。当图像调整大小时,使用灰色阴影使用插值来显示黑白图像。这提高了图像放大或缩小时的可读性。生成的图像是8位灰度的,所以这个选项只能用于黑白图像。
SIZE_OLD_RESAMPLE [0x0010]使用LEADTOOLS 14.5中的旧的重采样算法。
SIZE_PREMULTIPLYALPHA [0x0020]在执行调整大小时预乘alpha通道值

返回

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

评论

您负责为目标位图分配足够的存储空间。如果只需要一个副本,请使用L_SizeBitmap而不是这个函数。

如果使用8位或更少的图像,在调用此函数之前,必须确保两个位图句柄指向相同的调色板。为此,您可以使用L_CopyBitmapPalette函数复制调色板如下:

L_CopyBitmapPalette(&DestinationBitmap &SourceBitmap.hPalette);

若要在执行此函数期间更新状态栏或检测用户中断,请参阅L_SetStatusCallback

必需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

要获得完整的示例代码,请参阅FEATURE1
的例子。
这个例子加载一个临时位图,并使用L_ResizeBitmap创建一个新的
位图的大小是原来的一半。的低级函数
初始化和分配位图。同样的任务可以更有效地完成
高级功能。
注意,结果不是很好,因为我们调整了抖动图像的大小。

ResizeBitmapExample (L_VOID)L_INT nRet;BITMAPHANDLE LeadBitmap;/*位图句柄最终图像*/BITMAPHANDLE TmpBitmap;/*位图句柄初始图像*/L_INT NewWidth, NewHeight;/*调整尺寸*//*加载临时位图,每像素8位,以便我们演示如何处理它的调色板。* /nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT(“ImageProcessingDemo \ \ Image3.cmp”&TmpBitmap)),运算符(bitmaphandle), 8, order_bgr, null, null);如果(nRet != SUCCESS)返回nRet;/*定义尺寸调整* /NewWidth = TmpBitmap。宽度/ 2;NewHeight = TmpBitmap。高度/ 2;/*初始化位图句柄。* /nRet = L_InitBitmap(&LeadBitmap,运算符(BITMAPHANDLE), NewWidth, NewHeight, TmpBitmap。BitsPerPixel);如果(nRet != SUCCESS)返回nRet;/*为图像数据分配存储空间。* /nRet = L_AllocateBitmap(&LeadBitmap, TYPE_CONV);如果(nRet != SUCCESS)返回nRet;/*复制调色板*/nRet = L_CopyBitmapPalette(&LeadBitmap, &TmpBitmap);如果(nRet != SUCCESS)返回nRet;/*设置其他有用的值位图句柄*/LeadBitmap。ViewPerspective = TmpBitmap.ViewPerspective;LeadBitmap。XResolution = TmpBitmap.XResolution;LeadBitmap。YResolution = TmpBitmap.YResolution;LeadBitmap。Order = TmpBitmap.Order;/*调整TmpBitmap大小,创建LeadBitmap */nRet = L_ResizeBitmap (&TmpBitmap, &LeadBitmap, SIZE_NORMAL);如果(nRet != SUCCESS)返回nRet;L_SaveBitmap(MAKE_IMAGE_PATH(TEXT)“Result.BMP”)), &LeadBitmap, FILE_BMP, 0, 0, NULL);如果(nRet != SUCCESS)返回nRet;/*释放临时位图*/L_FreeBitmap (&TmpBitmap);/*释放调整后的位图L_FreeBitmap (&LeadBitmap);返回成功;

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