スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

rubyでお問い合わせ画像生成

info.png

という画像をホームページに載せたくて、色々とgimpでがんぱってたんですけど、やっぱり修正が大変だったので、自動化することにしました。
いつものように、RMagickを使います。

まず、バックを指定色で角が丸い四角で塗って、その1ピクセル中側に白い角が丸い四角の線を引きます。
右の縦線を影の色で塗って、下の横線も影の色で塗ります。
あと、白い線を引いたときにその周りが薄くなっていまっているので、右と下の線の1ピクセルをバックの色で塗ります。
後は文字を書いて、メールアイコンを付ければ完成です。

# coding:utf-8
require 'RMagick'
include Magick

def exec(width, height, colorMain, colorShadow)
f = Image.new(width, height) {
self.background_color = "none"
}

d = Draw.new
d.stroke("none")
d.fill(colorMain)
d.stroke_width(0)
d.fill_opacity(1.0)
d.stroke_opacity(0.0)
d.roundrectangle(0, 0, width, height, 5, 5)

d.stroke("#ffffff")
d.fill("none")
d.stroke_width(1)
d.fill_opacity(0.0)
d.stroke_opacity(1.0)
d.roundrectangle(1, 1, width - 2, height - 2, 5, 5)

d.stroke(colorShadow)
d.line(width - 2, 4, width - 2, height - 5)
d.line(width - 3, height - 4, width - 4, height - 3)
d.line(4, height - 2, width - 5, height - 2)

d.stroke(colorMain)
d.line(width - 3, 4, width - 3, height - 5)
d.line(4, height - 3, width - 5, height - 3)

d.font = '/Library/Fonts/ヒラギノ角ゴ Pro W3.otf'
d.fill('#000000')
d.stroke('#000000')
d.pointsize = 15
d.fill_opacity(1.0)
d.stroke_opacity(0.0)
d.text(25, 25, "お問い合わせはこちら")
d.text(47, 45, "mail@example.com")

drawMail(d, 25, 33)
d.draw(f)
f.write("test.png")
end

def drawMail(d, x, y)
d.fill('none')
d.stroke('#000000')
d.fill_opacity(0.0)
d.stroke_opacity(1.0)
d.rectangle(x, y, x + 17, y + 11);
d.line(x, y, x+8, y+8)
d.line(x+9, y+8, x + 17, y)
d.line(x, y + 11, x + 5, y + 6)
d.line(x + 17, y + 11, x + 12, y + 6)
end

exec(244, 60, "#bfbfbf", "#aaaaaa")
スポンサーサイト

Tag : RMagick

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。