# include“l_bitmap.h”
L_LTKRN_APIL_INTL_ResizeBitmap(pBitmapSrc, pDestBitmap, uFlags)
从现有位图调整图像的大小,并将调整大小的图像放入目标位图中,保持原始位图不变。
指向引用源位图句柄的指针。
指向位图句柄的指针,该位图句柄引用包含新调整大小图像的目标位图。
确定调整大小选项的标志。可能取值为:
价值 | 意义 |
---|---|
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);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。