精易论坛

标题: 求助一下,有没有什么方法可以改变图片亮度的呀? [打印本页]

作者: sangria    时间: 2025-6-29 11:38
标题: 求助一下,有没有什么方法可以改变图片亮度的呀?
本来一开始用了云外归鸟的图像处理支持库里的变亮更改的,可是最后导出的图片只显示了左上角的一点点,也不知道是因为什么。。。

作者: 斗战胜猴    时间: 2025-6-29 11:38
  
子程序名返回值类型公开备 注
位图_添加暗度字节集 
参数名类 型参考可空数组备 注
参_位图字节集
参_暗度阈值字节型0黑 255白
是否替换原图逻辑型
变量名类 型静态数组备 注
局_宽度整数型-4
局_高度整数型-8
局_位深度整数型-c
局_场景句柄整数型 
局_位图句柄整数型 
局_位图颜色点阵指针整数型 
blendFunc32bpp字节集 
BlendFunc整数型 
局_位图暗度字节集 
局_场景句柄_暗度整数型 
局_位图句柄_暗度整数型 
局_宽度 = 0
局_高度 = 0
局_位深度 = 0
置入代码 ({ 139, 69, 8, 139, 0, 131, 248, 0, 116, 3, 131, 192, 8, 139, 88, 18, 137, 93, 252, 139, 88, 22, 137, 93, 248, 139, 88, 28, 137, 93, 244 })
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “CreateCompatibleDC”), , 局_场景句柄, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “CreateDIBSection”), , 局_位图句柄, 局_场景句柄, 位图_取位图信息数据指针 (参_位图), 0, PtrInt (局_位图颜色点阵指针), 0, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “SelectObject”), , , 局_场景句柄, 局_位图句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “SetDIBits”), , , 局_场景句柄, 局_位图句柄, 0, 局_高度, 位图_取位图颜色数据指针 (参_位图), 位图_取位图信息数据指针 (参_位图), 0)
局_位图暗度 = 位图_创建空白位图 (局_宽度, 局_高度, 局_位深度)
blendFunc32bpp = { 0, 0, 0, 0 }
判断 (是否为空 (参_暗度阈值))
blendFunc32bpp [3] = 255
blendFunc32bpp [3] = 参_暗度阈值
BlendFunc = 取字节集数据 (blendFunc32bpp, #整数型, )
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “CreateCompatibleDC”), , 局_场景句柄_暗度, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “CreateDIBSection”), , 局_位图句柄_暗度, 局_场景句柄_暗度, 位图_取位图信息数据指针 (局_位图暗度), 0, PtrInt (局_位图颜色点阵指针), 0, 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “SelectObject”), , , 局_场景句柄_暗度, 局_位图句柄_暗度)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “GdiAlphaBlend”), , , 局_场景句柄_暗度, 0, 0, 局_宽度, 局_高度, 局_场景句柄, 0, 0, 局_宽度, 局_高度, BlendFunc)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “GetDIBits”), , , 局_场景句柄_暗度, 局_位图句柄_暗度, 0, 局_高度, 位图_取位图颜色数据指针 (局_位图暗度), 位图_取位图信息数据指针 (局_位图暗度), 0)
如果真 (是否替换原图)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “GetDIBits”), , , 局_场景句柄_暗度, 局_位图句柄_暗度, 0, 局_高度, 位图_取位图颜色数据指针 (参_位图), 位图_取位图信息数据指针 (参_位图), 0)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “DeleteDC”), , , 局_场景句柄_暗度)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “DeleteObject”), , , 局_位图句柄_暗度)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “DeleteDC”), , , 局_场景句柄)
调用子程序_通用型 (GetProcAddress_汇编 (GetGdi32 (), “DeleteObject”), , , 局_位图句柄)
返回 (局_位图暗度)


作者: 雨落无声    时间: 2025-6-29 12:22
可以用GDI+
作者: 斗战胜猴    时间: 2025-6-29 15:47
添加暗度
创建黑色位图 32位
复制场景 透明度

添加亮度
创建白色位图32位
复制场景 透明度

api GdiAlphaBlend
blendFunc32bpp = { 0, 0, 0, 0 }
.判断开始 (是否为空 (透明度) = 真)
    blendFunc32bpp [3] = 255
.默认
    blendFunc32bpp [3] = 透明度

作者: sangria    时间: 2025-6-30 10:01
斗战胜猴 发表于 2025-6-29 17:26
[e=0].版本 2

.子程序 位图_添加暗度, 字节集, 公开

找不到调用子程序_通用型呀
作者: 斗战胜猴    时间: 2025-6-30 10:58
sangria 发表于 2025-6-30 10:01
找不到调用子程序_通用型呀

我发的帖子有,或者用 特殊支持库 的 调用子程序()




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4