L_SizeBitmapInterpolate

# include“l_bitmap.h”

L_LTIMGCOR_APIL_INTL_SizeBitmapInterpolate(pBitmap, nWidth, nHeight, uFlags)

将位图调整为新的宽度和高度。

参数

pBITMAPHANDLEpBitmap

指向位图句柄的指针,引用要调整大小的位图。

L_INTnWidth

值,表示新宽度(以像素为单位)。

L_INTnHeight

值,表示新高度(以像素为单位)。

L_UINTuFlags

标志,它决定了调整大小的行为。可能取值为:

价值 意义
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);返回成功;

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