查看: 68|回复: 0

[转载发布] 顶替Bitmap的东东,强制去色

[复制链接]
  • TA的每日心情
    开心
    7 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月二日(秋) | 显示全部楼层 |阅读模式
    一个可以把图的底色完全干净地去除的脚本,效果图如下:
    原图:

    运行时:


    支持所有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对象就行了)
    1. def 强制去色(bitmap,c = Color.new(0,0,0,255))  color2 = [255-c.red,255-c.green,255-c.blue,c.alpha ]  b = Bitmap.new(bitmap)  w = b.width  h = b.height  bbb = Bitmap.new(w,h)  for x in 1..w    for y in 1..h      cc = b.get_pixel(x, y)      color = [cc.red,cc.green,cc.blue,cc.alpha]      cr = 255-color[0]      cg = 255-color[1]      cb = 255-color[2]      ca = color[3]      c2r = color2[0]      c2g = color2[1]      c2b = color2[2]      c2a = color2[3]      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 = [rr,gg,bb,aa,1.000].min      color3 = [c2r * xx ,c2g * xx,c2b * xx,c2a * xx]      cr -= color3[0]      cg -= color3[1]      cb -= color3[2]      ca -= color3[3]      bbb.set_pixel(x, y, Color.new(255-cr,255-cg,255-cb,ca))    end  end  return 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在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-17 17:42 , Processed in 0.052067 second(s), 44 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表