图片透明模块,快画透明图

易语言 2020-09-01 10:26:06

图片透明模块,快画透明图

.子程序 快画透明图, 字节集, 公开, 注意:顶部图片和底部图片必须为尺寸相同的BMP图象,如果不是BMP,建议用 [ 转换到BMP (, ) ],但一定要注意,尺寸必须相同
.参数 底部图片, 字节集
.参数 顶部图片, 字节集
.参数 透明值, 整数型
.局部变量 当前位置, 整数型
.局部变量 尺寸, 整数型, , "2"
.局部变量 临时色变量B, 整数型, , "4"
.局部变量 红色位
.局部变量 绿色位
.局部变量 蓝色位
.局部变量 红色值
.局部变量 绿色值
.局部变量 蓝色值
.局部变量 透明值B, 整数型, , "3"

尺寸 [1] = 十六到十进制 (读字节位 (底部图片, 22) + 读字节位 (底部图片, 21) + 读字节位 (底部图片, 20) + 读字节位 (底部图片, 19))
尺寸 [2] = 十六到十进制 (读字节位 (底部图片, 26) + 读字节位 (底部图片, 25) + 读字节位 (底部图片, 24) + 读字节位 (底部图片, 23))
红色位 = 56
绿色位 = 55
蓝色位 = 57
.计次循环首 (尺寸 [1] × 尺寸 [2], )
红色值 = 底部图片 [红色位]
绿色值 = 底部图片 [绿色位]
蓝色值 = 底部图片 [蓝色位]
临时色变量B [1] = 顶部图片 [红色位]
临时色变量B [2] = 顶部图片 [绿色位]
临时色变量B [3] = 顶部图片 [蓝色位]
' 得到点初始值
透明值B [1] = 红色值 + (临时色变量B [1] - 红色值) ÷ 100 × 透明值
透明值B [2] = 绿色值 + (临时色变量B [2] - 绿色值) ÷ 100 × 透明值
透明值B [3] = 蓝色值 + (临时色变量B [3] - 蓝色值) ÷ 100 × 透明值
.如果真 (透明值B [1] > 255)
透明值B [1] = 255
.如果真结束
.如果真 (透明值B [2] > 255)
透明值B [2] = 255
.如果真结束
.如果真 (透明值B [3] > 255)
透明值B [3] = 255
.如果真结束
.如果真 (透明值B [1] < 0)
透明值B [1] = 0
.如果真结束
.如果真 (透明值B [2] < 0)
透明值B [2] = 0
.如果真结束
.如果真 (透明值B [3] < 0)
透明值B [3] = 0
.如果真结束
底部图片 [红色位] = 透明值B [1]
底部图片 [绿色位] = 透明值B [2]
底部图片 [蓝色位] = 透明值B [3]
红色位 = 红色位 + 3
绿色位 = 绿色位 + 3
蓝色位 = 蓝色位 + 3
.计次循环尾 ()
返回 (底部图片)