绘制矩形 - DrawRectangle
函数简介
在图片中绘制矩形。支持实线矩形和填充矩形,可以指定颜色和透明度。此函数支持ARGB颜色格式,可以设置带透明度的颜色。适用于图像编辑、界面绘制等场景。
接口名称
DrawRectangle
DLL调用
long DrawRectangle(long ola, long ptr, int x1, int y1, int x2, int y2, int thickness, string color)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由DLL版本 CreateCOLAPlugInterFace 接口生成ptr
(长整型数): OLAImage对象的地址x1
(整型数): 矩形左上角的X坐标y1
(整型数): 矩形左上角的Y坐标x2
(整型数): 矩形右下角的X坐标y2
(整型数): 矩形右下角的Y坐标thickness
(整型数): 线条的粗细- 正值: 表示矩形轮廓的线条粗细
- 负值: 表示绘制填充矩形
color
(字符串): 填充的颜色,支持ARGB格式,如"#FFFFFFFF"- 前两位: Alpha通道,00-FF,表示透明度
- 中间两位: Red通道,00-FF
- 后四位: Green和Blue通道,各00-FF
示例:
// 加载原图
long imagePtr = ola.LoadImage("test.bmp");
// 绘制一个红色填充矩形
long filledRect = ola.DrawRectangle(imagePtr, 50, 50, 150, 150, -1, "#FFFF0000");
// 绘制一个蓝色边框矩形,线条粗细为2像素
long outlineRect = ola.DrawRectangle(imagePtr, 200, 200, 300, 300, 2, "#FF0000FF");
// 绘制一个半透明的绿色填充矩形
long transparentRect = ola.DrawRectangle(imagePtr, 350, 350, 450, 450, -1, "#8000FF00");
// 显示结果
ola.ShowImage(filledRect);
// 释放内存
ola.FreeImagePtr(imagePtr);
ola.FreeImagePtr(filledRect);
ola.FreeImagePtr(outlineRect);
ola.FreeImagePtr(transparentRect);
COM调用
long DrawRectangle(long ptr, int x1, int y1, int x2, int y2, int thickness, string color)
参数定义:
ptr
(长整型数): OLAImage对象的地址x1
(整型数): 矩形左上角的X坐标y1
(整型数): 矩形左上角的Y坐标x2
(整型数): 矩形右下角的X坐标y2
(整型数): 矩形右下角的Y坐标thickness
(整型数): 线条的粗细- 正值: 表示矩形轮廓的线条粗细
- 负值: 表示绘制填充矩形
color
(字符串): 填充的颜色,支持ARGB格式,如"#FFFFFFFF"- 前两位: Alpha通道,00-FF,表示透明度
- 中间两位: Red通道,00-FF
- 后四位: Green和Blue通道,各00-FF
示例:
# 加载原图
imagePtr = ola.LoadImage("test.bmp")
# 绘制一个红色填充矩形
filledRect = ola.DrawRectangle(imagePtr, 50, 50, 150, 150, -1, "#FFFF0000")
# 绘制一个蓝色边框矩形,线条粗细为2像素
outlineRect = ola.DrawRectangle(imagePtr, 200, 200, 300, 300, 2, "#FF0000FF")
# 绘制一个半透明的绿色填充矩形
transparentRect = ola.DrawRectangle(imagePtr, 350, 350, 450, 450, -1, "#8000FF00")
# 显示结果
ola.ShowImage(filledRect)
# 释放内存
ola.FreeImagePtr(imagePtr)
ola.FreeImagePtr(filledRect)
ola.FreeImagePtr(outlineRect)
ola.FreeImagePtr(transparentRect)
返回值
长整型数: 返回新的OLAImage对象的地址
注意事项
- 颜色值支持两种格式:
- 不透明颜色:6位十六进制,如"#FFFFFF"
- 带透明度颜色:8位十六进制,如"#FFFFFFFF"(前两位为透明度)
- 坐标必须在图片的有效范围内
- 原图不会被修改,而是返回一个新的图片对象
- 使用完毕后必须调用 FreeImagePtr 释放内存
- 建议在使用前检查图片指针和坐标的有效性
- 线条粗细的绝对值必须大于0
- 颜色值不区分大小写
- 建议在修改前保存原始图片的备份
- 修改后的图片需要重新保存才能永久保存更改
- 绘制大矩形时注意性能影响
- 如果需要绘制其他形状,请使用其他相关函数