覆盖图片 - CoverImage
函数简介
将一张图片覆盖到另一张图片上。此函数可以将源图片覆盖到目标图片的指定位置,支持透明度设置。适用于图片合成、水印添加等场景。
接口名称
CoverImage
DLL调用
int CoverImage(long ola, long srcPtr, long dstPtr, int x, int y, int alpha)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。srcPtr
(长整型数): 源图片的OLAImage对象的地址dstPtr
(长整型数): 目标图片的OLAImage对象的地址x
(整型数): 覆盖位置的X坐标y
(整型数): 覆盖位置的Y坐标alpha
(整型数): 透明度,范围0-255,0表示完全透明,255表示完全不透明
示例:
// 加载源图片和目标图片
long srcPtr = LoadImage(ola, "/OLA/pic/watermark.png");
long dstPtr = LoadImage(ola, "/OLA/pic/background.png");
if (srcPtr != 0 && dstPtr != 0) {
// 在目标图片的(100, 100)位置覆盖源图片,透明度为128
int result = CoverImage(ola, srcPtr, dstPtr, 100, 100, 128);
if (result == 1) {
printf("图片覆盖成功\n");
} else {
printf("图片覆盖失败\n");
}
// 释放图片内存
FreeImagePtr(ola, srcPtr);
FreeImagePtr(ola, dstPtr);
}
COM调用
int CoverImage(long srcPtr, long dstPtr, int x, int y, int alpha)
参数定义:
srcPtr
(长整型数): 源图片的OLAImage对象的地址dstPtr
(长整型数): 目标图片的OLAImage对象的地址x
(整型数): 覆盖位置的X坐标y
(整型数): 覆盖位置的Y坐标alpha
(整型数): 透明度,范围0-255,0表示完全透明,255表示完全不透明
示例:
# 加载源图片和目标图片
srcPtr = LoadImage("/OLA/pic/watermark.png")
dstPtr = LoadImage("/OLA/pic/background.png")
if srcPtr and dstPtr:
# 在目标图片的(100, 100)位置覆盖源图片,透明度为128
result = ola.CoverImage(srcPtr, dstPtr, 100, 100, 128)
if result == 1:
messagebox("图片覆盖成功")
else:
messagebox("图片覆盖失败")
# 释放图片内存
FreeImagePtr(srcPtr)
FreeImagePtr(dstPtr)
返回值
整型数:
- 0: 覆盖失败
- 1: 覆盖成功
注意事项
- 源图片和目标图片的指针必须有效,否则可能导致程序异常
- 覆盖位置(x, y)必须在目标图片范围内
- 透明度参数必须在0-255范围内
- 源图片超出目标图片范围的部分将被裁剪
- 图片使用完后需要调用 FreeImagePtr 接口释放内存
- 建议在覆盖前检查图片尺寸,确保不会超出目标图片范围
- 如果源图片或目标图片指针无效,函数将返回0
- 透明度为0时,源图片完全透明,不会影响目标图片
- 透明度为255时,源图片完全不透明,完全覆盖目标图片
- 建议在覆盖大图片时注意内存使用