锁定老帖子 主题:Rmagick图形处理(不规则四边)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-26
def self.showimg(len,imgname,content)<o:p></o:p> cur = 10<o:p></o:p> <o:p></o:p> canvas = Magick::ImageList.new<o:p></o:p> #granite=Magick::ImageList.new.from_blob(imgname)<o:p></o:p> #granite=granite.frame(width=20, height=20, x=20, y=20, inner_bevel=3, outer_bevel=1, color='gray75')<o:p></o:p> #granite=granite.border(5, 5, 'red')<o:p></o:p> <o:p></o:p> granitet = Magick::ImageList.new.new_image(500,380)do <o:p></o:p> self.background_color = 'gray'<o:p></o:p> end<o:p></o:p> <o:p> </o:p> <o:p> </o:p> granite =Magick::ImageList.new.from_blob(imgname)<o:p></o:p> img_y=granite.rows<o:p></o:p> img_x=granite.columns<o:p></o:p> points=[1,8]<o:p></o:p> temp=1<o:p></o:p> while temp<=10<o:p></o:p> points<<rand(10)<o:p></o:p> points<<rand(10)+(img_y/10)*(temp-1)<o:p></o:p> temp+=1<o:p></o:p> end<o:p></o:p> temp=1<o:p></o:p> while temp<=18<o:p></o:p> points<<rand(9)+(img_x/18)*temp<o:p></o:p> points<<granite.rows-62+rand(8)<o:p></o:p> temp+=1<o:p></o:p> end<o:p></o:p> temp=1<o:p></o:p> while temp<=10<o:p></o:p> points<<granite.rows+46+rand(15)<o:p></o:p> points<<rand(10)+(img_y/10)*(10-temp)<o:p></o:p> temp+=1<o:p></o:p> end<o:p></o:p> temp=1<o:p></o:p> while temp<=18<o:p></o:p> points<<rand(10)+(granite.rows/18)*(18-temp)<o:p></o:p> points<<rand(11)<o:p></o:p> temp+=1<o:p></o:p> end<o:p></o:p> pr = Magick::Draw.new<o:p></o:p> pr.define_clip_path('example') {<o:p></o:p> pr.polygon(*points)<o:p></o:p> }<o:p></o:p> pr.clip_path('example')<o:p></o:p> tf=Magick::ImageList.new("public/images/model1/jitian.gif")<o:p></o:p> granite = granite.composite(tf,rand(200),rand(200), Magick::OverCompositeOp)<o:p></o:p> cols = rows = nil<o:p></o:p> granite.change_geometry("350") do |c,r|<o:p></o:p> pr.composite(0,0, c, r, granite)<o:p></o:p> cols = c<o:p></o:p> rows = r<o:p></o:p> end<o:p></o:p> text = Magick::Draw.new<o:p></o:p> canvas.new_image(800,680) do <o:p></o:p> self.background_color = 'gray'<o:p></o:p> end <o:p></o:p> pr.draw(granitet)<o:p></o:p> canvas = canvas.composite(granitet,220,220, Magick::InCompositeOp)<o:p></o:p> <o:p></o:p> #canvas=canvas.border(5, 5, 'red')<o:p></o:p> #text=text.stroke_opacity(0.1)<o:p></o:p> #text=text.opacity(0.1)<o:p></o:p> #text=text.fill_opacity(0.1)<o:p></o:p> #tft=Magick::ImageList.new<o:p></o:p> <o:p> </o:p> text.annotate(canvas,0,0,10,10,CGI.unescape(content)) do <o:p></o:p> self.rotation=0<o:p></o:p> #self.encoding='gbk'<o:p></o:p> self.pointsize = 20<o:p></o:p> self.font_weight = Magick::BoldWeight<o:p></o:p> self.fill = 'white'<o:p></o:p> self.gravity = Magick::SouthEastGravity<o:p></o:p> end <o:p></o:p> <o:p></o:p> @myimage = canvas.to_blob{self.format="jpg"}<o:p></o:p> <o:p></o:p> end 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2777 次