主页 / 库函数目录 / 图像处理 / 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 传入错误,会引发运行时异常。 示例: (无)。