创建图片 - CreateImage
函数简介
创建一个指定大小的空白图片。此函数用于创建一个新的图片对象,可以指定图片的宽度和高度,创建的图片初始状态为全透明。创建的图片可以用于后续的绘制、像素操作等处理。
接口名称
CreateImage
DLL调用
long CreateImage(long ola, int width, int height)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。width
(整型数): 要创建的图片宽度,单位为像素。height
(整型数): 要创建的图片高度,单位为像素。
示例:
// 创建一个800x600的空白图片
long image = CreateImage(ola, 800, 600);
if (image != 0) {
printf("空白图片创建成功,句柄:%ld\n", image);
// 在图片上绘制一个红色矩形
DrawRectangle(ola, image, 100, 100, 300, 200, 0xFF0000);
// 保存图片到文件
SaveImageFromPtr(ola, image, "D:\\test\\new_image.png");
// 使用完后释放图片内存
FreeImagePtr(ola, image);
} else {
printf("图片创建失败\n");
}
// 创建一个与现有图片相同大小的新图片
long src_image = LoadImage(ola, "D:\\test\\sample.png");
if (src_image != 0) {
int width, height;
GetImageSize(ola, src_image, &width, &height);
// 创建相同大小的新图片
long new_image = CreateImage(ola, width, height);
if (new_image != 0) {
printf("创建了一个 %d x %d 的新图片\n", width, height);
// 在这里可以进行图片处理操作
// ...
FreeImagePtr(ola, new_image);
}
FreeImagePtr(ola, src_image);
}
COM调用
long CreateImage(int width, int height)
参数定义:
width
(整型数): 要创建的图片宽度,单位为像素。height
(整型数): 要创建的图片高度,单位为像素。
示例:
# 创建一个800x600的空白图片
image = ola.CreateImage(800, 600)
if image != 0:
messagebox("空白图片创建成功,句柄:" + str(image))
# 在图片上绘制一个红色矩形
ola.DrawRectangle(image, 100, 100, 300, 200, 0xFF0000)
# 保存图片到文件
ola.SaveImageFromPtr(image, "D:\\test\\new_image.png")
# 使用完后释放图片内存
ola.FreeImagePtr(image)
else:
messagebox("图片创建失败")
# 创建一个与现有图片相同大小的新图片
src_image = ola.LoadImage("D:\\test\\sample.png")
if src_image != 0:
width = height = 0
ola.GetImageSize(src_image, width, height)
# 创建相同大小的新图片
new_image = ola.CreateImage(width, height)
if new_image != 0:
messagebox(f"创建了一个 {width} x {height} 的新图片")
# 在这里可以进行图片处理操作
# ...
ola.FreeImagePtr(new_image)
ola.FreeImagePtr(src_image)
返回值
长整型数:
- 0: 创建失败
- 非0: 创建成功,返回图片句柄
注意事项
- 创建的图片初始状态为全透明
- 图片大小不要超过系统内存限制,建议单张图片不超过100MB
- 创建成功后必须使用 FreeImagePtr 释放图片内存
- 可以使用 SetPixel 或绘图函数来修改图片内容
- 如果需要创建带初始颜色的图片,可以在创建后使用 SetColorsToNewColor 设置背景色