主页 / 库函数目录 / 图像处理 / putimage_alphablend
功能:
对两张图像进行透明混合,并将混合结果写入目标图像。
说明:
要求两张图像像素颜色为 ARGB 或 PARGB(预乘alpha) 格式。
混合得到的像素颜色为 PARGB 格式。
如果源图像为 ARGB 格式,混合公式参见: alphablend
如果源图像为 PARGB 格式,混合公式参见: alphablend_premultiplied
声明:
int putimage_alphablend(
PIMAGE imgDest, // 目标图像
PCIMAGE imgSrc, // 源图像
int xDest, // 绘制区域左上角在目标图像上的 x 坐标
int yDest, // 绘制区域左上角在目标图像上的 y 坐标
unsigned char alpha, // 图像整体透明度
alpha_type alphaType = ALPHATYPE_STRAIGHT // 源图像像素的 alpha 类型
);
int putimage_alphablend(
PIMAGE imgDest, // 目标图像
PCIMAGE imgSrc, // 源图像
int xDest, // 绘制区域左上角在目标图像上的 x 坐标
int yDest, // 绘制区域左上角在目标图像上的 y 坐标
unsigned char alpha, // 图像整体透明度
int xSrc, // 绘制内容在源图像中的左上角 x 坐标
int ySrc, // 绘制内容在源图像中的左上角 y 坐标
alpha_type alphaType = ALPHATYPE_STRAIGHT // 源图像像素的 alpha 类型
);
int putimage_alphablend(
PIMAGE imgDest, // 目标图像
PCIMAGE imgSrc, // 源图像
int xDest, // 绘制区域左上角在目标图像上的 x 坐标
int yDest, // 绘制区域左上角在目标图像上的 y 坐标
unsigned char alpha, // 图像整体透明度
int xSrc, // 绘制内容在源图像中的左上角 x 坐标
int ySrc, // 绘制内容在源图像中的左上角 y 坐标
int widthSrc, // 绘制内容在源图像中的宽度
int heightSrc, // 绘制内容在源图像中的高度
alpha_type alphaType = ALPHATYPE_STRAIGHT // 源图像像素的 alpha 类型
);
int putimage_alphablend(
PIMAGE imgDest, // 目标图像
PCIMAGE imgSrc, // 源图像
int xDest, // 绘制区域左上角在目标图像上的 x 坐标
int yDest, // 绘制区域左上角在目标图像上的 y 坐标
int widthDest, // 绘制区域在目标图像中的宽度
int heightDest, // 绘制区域在目标图像中的高度
unsigned char alpha, // 图像整体透明度
int xSrc, // 绘制内容在源图像中的左上角 x 坐标
int ySrc, // 绘制内容在源图像中的左上角 y 坐标
int widthSrc, // 绘制内容在源图像中的宽度
int heightSrc, // 绘制内容在源图像中的高度
bool smooth = false, // 是否进行平滑处理
alpha_type alphaType = ALPHATYPE_STRAIGHT // 源图像像素的 alpha 类型
);
参数:
imgDest
要进行半透明混合的目标图像,如果为 NULL 则表示窗口。
imgSrc
要进行半透明混合的源图像(该操作不会改变源图像)。
xDest, yDest
目标图像上要进行混合的混合区域的左上角坐标。
widthDest, heightDest
目标图像上要进行混合的混合区域的宽高。
如果为 0 ,则与源图像矩形区域的宽(或高)相等,即不缩放。
alpha
图像整体透明度,范围:0~255,共 256 个透明度级别。
alpah = 0 时表示源图像完全透明,alpha = 255 时源图像透明度不变。
xSrc, ySrc, widthSrc, heightSrc
描述要进行此操作的源图像矩形区域(左上角的x, y 坐标,宽度width, 高度 height )。
如果 widthSrc 和 heightSrc 小于等于 0,则为源图像从(xSrc, ySrc) 至右下角的区域。
smooth
是否进行平滑处理
alphaType
源图像的 alpha 类型,分为以下两种:
值 | 含义 |
ALPHATYPE_STRAIGHT(默认) | 使用直接 alpha 的像素格式(即最常用的 ARGB 格式) |
ALPHATYPE_PREMULTIPLIED | 使用预乘 alpha 的像素格式(PARGB) |
PARGB 颜色格式可以由 ARGB 格式通过将 RGB分量乘以 alpha 转换得到:
ARGB: (A, R, B, G)
PARGM: (A, R * A/255, G * A/255, B * A/255)
返回值:
成功返回 0,否则返回非 0,若 imgDest 或 imgSrc 传入错误,会引发运行时异常。
示例:
(无)。