じ☆ve冰风 发表于 2024-4-19 19:32:03

顶替Bitmap的东东,强制去色

一个可以把图的底色完全干净地去除的脚本,效果图如下:
原图:

运行时:


支持所有RM支持的图片,使用方法基本与bitmap.new相同,然后返回的也是bitmap对象
但是输入的量除了文件名,还要作为去除颜色的Color   (如Color.new(0,0,0,255))

链接:http://rpg.blue/thread-36728-1-89.html
将bitmap对象输出为png文件(很久以前的东西)


脚本的速度很慢(大概200×200要1秒),所以不建议用于多张图片显示或者在游戏运行时使用(载入地图时先生成bitmap对象就行了)def 强制去色(bitmap,c = Color.new(0,0,0,255))color2 = b = Bitmap.new(bitmap)w = b.widthh = b.heightbbb = Bitmap.new(w,h)for x in 1..w    for y in 1..h      cc = b.get_pixel(x, y)      color =       cr = 255-color      cg = 255-color      cb = 255-color      ca = color      c2r = color2      c2g = color2      c2b = color2      c2a = color2      rr = 1.000000      gg = 1.000000      bb = 1.000000      aa = 1.000000      rr = cr * 1.000000 / c2r if c2r != 0      gg = cg * 1.000000/ c2g if c2g != 0      bb = cb * 1.000000/ c2b if c2b != 0      aa = ca * 1.000000/ c2a if c2a != 0      xx = .min      color3 =       cr -= color3      cg -= color3      cb -= color3      ca -= color3      bbb.set_pixel(x, y, Color.new(255-cr,255-cg,255-cb,ca))    endendreturn bbbend复制代码R-零于2011-7-11 18:07补充以下内容:
颜色可以自己改,默认是去黑色底。再次强调使用方法: bitmap = 强制去色("图片",Color.new(R,G,B,Alpha))

             本帖来自P1论坛作者R-零,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=190683若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 顶替Bitmap的东东,强制去色