Project1
标题:
求解,如何将一个bitmap切出一个圆形,成为新的bitmap?
[打印本页]
作者:
7408
时间:
2014-5-14 10:41
标题:
求解,如何将一个bitmap切出一个圆形,成为新的bitmap?
问题:现在有一个bitmap,怎么对它进行切割(圆形)分离?
另外问下大家有没有对bitmap的处理的范例?谢谢~
作者:
7408
时间:
2014-5-18 12:11
自顶一下,拜托各位花点时间教下吧 thanks~~
作者:
亿万星辰
时间:
2014-5-18 12:51
Bitmap类以默认的系统而言,只能以一个矩形的形式来体现。
作者:
克莉丝
时间:
2014-5-18 13:24
rgss本身没有定义这种方法、可以利用blt实现,不过不优化算法的话效率会异常地低下
QQ截图20140518132153.jpg
(56.65 KB, 下载次数: 13)
下载附件
保存到相册
2014-5-18 13:21 上传
既然你提出这个问题说明你对脚本是了解的,下面的代码稍微花了点时间写、你可以参考后自己整合成一个方法。
def y_get_circle_width(r,y) #根据相对圆心y坐标获得横向宽度
return 0 if r.abs < y.abs
return Math.sqrt(r ** 2 - (y.to_f) ** 2) * 2
end
bitmap1 = Bitmap.new("miu.jpg")
bitmap2 = Bitmap.new(666,666)
sprite = Sprite.new
r = 64 #半径
ox = 64 #位图上圆心坐标
oy = 64
sx = ox - r #获得左上顶点坐标
sy = oy - r
sprite.bitmap = bitmap2
sprite.x = 320-64
sprite.y = 240-64
(r*2).times{|y|
width = y_get_circle_width(r,y-r) #根据相对圆心y坐标获得横向宽度
bx = sx + r - width / 2 #获得blt的起点坐标
by = sy + y
rect = Rect.new(bx,by,width,1)
bitmap2.blt(bx,by,bitmap1,rect)
}
loop{Graphics.update}
复制代码
作者:
芯☆淡茹水
时间:
2014-5-18 20:55
可以用 PS 试试。
作者:
刘飞洋
时间:
2014-5-23 21:40
直接PS,建一个圆形选区,然后羽化。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1