# include“l_bitmap.h”
L_LTIMGCOR_APIL_INTL_SizeBitmapInterpolate(pBitmap, nWidth, nHeight, uFlags)
将位图调整为新的宽度和高度。
指向位图句柄的指针,引用要调整大小的位图。
值,表示新宽度(以像素为单位)。
值,表示新高度(以像素为单位)。
标志,它决定了调整大小的行为。可能取值为:
价值 | 意义 |
---|---|
SIZE_NORMAL | [0x0000]正常调整大小。这是最快的,但可能会导致混叠。 |
SIZE_RESAMPLE | [0x0002]使用线性插值和平均生成更高质量的图像。 |
SIZE_BICUBIC | [0x0004]使用双三次插值和平均生成高质量的图像。这比SIZE_BILINEAR慢。 |
SIZE_TRIANGLE | [0x0005]使用三角峰值加权平均产生高质量的图像。 |
SIZE_HERMITE | [0x0006]使用Hermite插值生成的图像质量好于Bresenham插值,但不如双线性插值。(使用三次样条,当使用埃尔米特插值比使用双线性插值慢)。 |
SIZE_BELL | [0x0007]使用钟形插值生成高质量图像。这个滤镜在调整大小的同时模糊图像。如果你想要类似于双三次滤波的性能,但你的源图像是有噪声的,使用这个。 |
SIZE_QUADRATIC_B_SPLINE | [0x0008]使用二次b样条插值生成平滑质量的图像,但效果不如使用三次b样条插值生成的图像。这比SIZE_CUBIC_B_SPLINE快。 |
SIZE_CUBIC_B_SPLINE | [0x0009]使用三次b样条插值生成非常平滑的质量图像(非常模糊)。这比“贝尔滤波器”更进一步。这种类型的插值有点慢,生成的图像有更多的模糊,但它有更少的噪音。这个方法比SIZE_BICUBIC快。 |
SIZE_BOXFILTER | [0x00A]在上采样时使用Box过滤器来等效于最近邻的结果,在下采样时使用平均像素。这为具有单像素线的图像提供了最佳结果。 |
SIZE_LANCZOS | [0x000B]使用Sinc (sinx/x)使用Lanczos插值生成高质量的图像。提供最好的质量,但它是相当慢。 |
SIZE_MICHELL | [0x000C]使用Michel插值生成平滑质量的图像,尽管没有使用二次b样条插值生成的图像平滑。它比SIZE_BICUBIC慢。 |
SIZE_COSINE | [0x000D]在插值中使用余弦函数来生成高质量的图像。 |
SIZE_CATROM | [0x000E]使用CatmullRom插值生成高质量图像。它比SIZE_BICUBIC慢,但比SIZE_LANCZOS快。 |
SIZE_QUADRATIC | [0x000F]使用二次插值生成高质量的图像,尽管它不如使用双线性插值生成的图像质量好。它比SIZE_BICUBIC慢。 |
SIZE_CUBIC_CONVOLUTION | [0x0010]使用三次卷积插值生成具有增强图像边缘的高质量图像。它比SIZE_BICUBIC慢。 |
SIZE_BILINEAR | [0x0011]使用线性插值和平均产生高质量的图像。它比SIZE_NORMAL和SIZE_BRESENHAM快但慢 |
SIZE_BRESENHAM | [0x0012]使用布莱森汉姆插值和平均生成高质量的图像(比SIZE_NORMAL更好)。这比SIZE_NORMAL慢,但比SIZE_BILINEAR快。 |
价值 | 意义 |
---|---|
成功 | 活动很成功。 |
< 1 | 发生错误。指返回代码. |
该功能支持12位和16位灰度和48位和64位彩色图像。支持12位和16位灰度以及48位和64位彩色图像文件和医疗成像工具包。
要查看这些方法之间的可视化比较,显示速度和500%放大的结果,请单击在这里.
若要在执行此函数期间更新状态栏或检测用户中断,请参阅L_SetStatusCallback.
必需的dll和库
Win32, x64, Linux。
这个例子将位图的大小更改为原来大小的一半
L_INT SizeBitmapInterpolatepExample (L_VOID)
{
L_INT nRet;
BITMAPHANDLE LeadBitmap;/*保存加载图像的位图句柄
/*加载位图,每个像素有自己的位*/
nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT(“sample5.cmp”&LeadBitmap)),运算符(bitmaphandle), 0, order_bgr, null, null);
如果(nRet != SUCCESS)
返回nRet;
/*改变位图的大小*/
nRet = L_SizeBitmapInterpolate(&LeadBitmap, LeadBitmap.)宽度/ 2,LeadBitmap。Height / 2, SIZE_LANCZOS);
如果(nRet != SUCCESS)
返回nRet;
L_SaveBitmap(MAKE_IMAGE_PATH(TEXT)“Result.BMP”)), &LeadBitmap, FILE_BMP, 24, 0, NULL);
如果(nRet != SUCCESS)
返回nRet;
如果(LeadBitmap.Flags.Allocated)
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点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。