Showing posts with label RMagick. Show all posts
Showing posts with label RMagick. Show all posts

Thursday, July 30, 2009

RMagickで画像を絵画調に変換する - その2

RMagickで画像を絵画調に変換するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf2.jpg")
images[0] = images.fx("0.6*p")
images.modulate(1,1.8,1).
sketch(0,10,135).spread(2).
oil_paint(2).
write("sample1157a.png")
exit


元画像(sf2.jpg)


出力画像(sample1157a.png)


動作環境
ruby1.8.6, rmagick2.9.0

関連項目
RMagickで画像を絵画調に変換する

Tuesday, July 28, 2009

RMagickで抽象的なセピア調画像に変換する

RMagickで抽象的なセピア調画像に変換するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf2.jpg")
images[0] = images.fx("0.4*p")
images.modulate(1.2,0.2,1).
median_filter(2).
sepiatone(95).
write("sample1158a.png")
exit


元画像(sf2.jpg)


出力画像(sample1158a.png)
RMagickで抽象的なセピア調に変換した画像

動作環境
ruby1.8.6, rmagick2.9.0

Monday, July 20, 2009

RMagickで画像を青く滲ませる

RMagickで画像を青く滲ませるには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf2.jpg")
images.modulate(0.9,0.5,1).
spread(3).motion_blur(0,7,270).
colorize(0.2, 0.2, 0.2, "#5588ee").
write("sample1156a.png")
exit


元画像(sf2.jpg)


出力画像(sample1156a.png)
RMagickで青く滲ませた画像

動作環境
ruby1.8.6, rmagick2.9.0

Friday, July 10, 2009

RMagickで画像をビデオ風に変換する

RMagickで画像をビデオ風に変換するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.rows.times { |py|
line = images.get_pixels(0, py, images.columns, 1)
line.size().times { |px|
if (py % 2) == 0 then
line[px].red = line[px].red/2;
line[px].green = line[px].green/2;
line[px].blue = line[px].blue/2;
end
}
images.store_pixels(0, py, images.columns, 1, line)
}
images.write("sample1149a.png")
exit


元画像(sf.jpg)


出力画像(sample1149a.png)


動作環境
ruby1.8.6, rmagick2.9.0

Monday, July 06, 2009

RMagickで回転したタイル配置の角丸四角で画像を切り取る

RMagickで回転したタイル配置の角丸四角で画像を切り取るには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel

images2 = ImageList.new
images2.new_image(20, 20){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.roundrectangle(0,0,18,18,4,4);
dr.draw(images2)

images3 = ImageList.new()
images3.new_image(images.columns, images.rows,
TextureFill.new(images2))
images3.alpha = ActivateAlphaChannel
images3.virtual_pixel_method = TileVirtualPixelMethod
images3[0] = images3.distort(ScaleRotateTranslateDistortion, [20])
images.composite(images3, CenterGravity, 0, 0,
DstInCompositeOp).write("sample1148a.png")

exit



元画像(sf.jpg)


出力画像(sample1148a.png)


動作環境
ruby1.8.6, rmagick2.9.0

Friday, June 26, 2009

RMagickで画像を角丸四角パターンで切り取る

RMagickで画像を角丸四角パターンで切り取るには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel

images2 = ImageList.new
images2.new_image(20, 20){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.roundrectangle(0,0,18,18,4,4);
dr.draw(images2)

images3 = ImageList.new()
images3.new_image(images.columns, images.rows,
TextureFill.new(images2))
images3.alpha = ActivateAlphaChannel
images.composite(images3, CenterGravity, 0, 0,
DstInCompositeOp).write("sample1147a.png")

exit


元画像(sf.jpg)


出力画像
RMagickを使用して角丸四角パターンで切り取った画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで画像を角丸四角タイルパターンで切り取る (convertコマンドでの同様の処理)

Tuesday, June 16, 2009

RMagickで文字列画像に半透明の濃淡をつける

RMagickで文字列画像に半透明の濃淡をつけるには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new
images.new_image(200, 40){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "#aaccf8"
# フォント
dr.font = "Tahoma"
# ポイントサイズ
dr.pointsize = 30
dr.gravity = CenterGravity
dr.text(0, 0, "ImageMagick")
dr.draw(images)
images[0] = images.blur_channel(0,1,AllChannels)

images2 = ImageList.new()
images2.read("plasma:fractal"){
self.size = "200x40"
}
images2.alpha = ActivateAlphaChannel
images2.colorspace = GRAYColorspace
images2[0] = images2.modulate(0.8, 1, 1).
blur_channel(0,3,AllChannels)
images2[0] = images2.fx("r", AlphaChannel)
images.composite(images2, CenterGravity, 0, 0,
DstOutCompositeOp).write("sample1146a.png")


出力画像(sample1146a.png)


動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで文字画像に半透明の濃淡をつける (convertコマンドでの同様の処理)

Saturday, June 06, 2009

RMagickで放射グラデーションを描画する

RMagickで放射グラデーションを描画するには、以下のコードを実行します。


require 'RMagick'
include Magick

# env: ruby1.8.6, rmagick2.9.0

images = ImageList.new()
images.read("radial-gradient:#7799ff-#ffffff"){
self.size = "200x200"
}
images.write("sample1123a.png")

exit


出力画像(sample1123a.png)
RMagickで描画した放射グラデーション

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
RMagickで虹色グラデーションの文字列を描画する
Rmagickで画像を木炭画調に変換してグラデーションを適用する

Tuesday, May 19, 2009

RMagickでぼやけた円をランダムに描画する

RMagickでぼやけた円をランダムに描画するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
10.times {
images2 = ImageList.new
images2.new_image(images.columns, images.rows){
self.background_color = "none"
}
images2.alpha = ActivateAlphaChannel
dr = Draw.new
cx = rand() * images.columns
cy = rand() * images.columns
rv = rand()
dr.fill = "#ffffff80"
rad = 40*rv
dr.ellipse(cx, cy,rad, rad, 0, 360)
dr.draw(images2);
images[0] = images.composite(
images2.blur_channel(0,7*rv,AllChannels),
CenterGravity, 0, 0,
OverCompositeOp)
}
images.write("sample1089a.png")

exit


元画像(sf.jpg)


出力画像(sample1089a.png)
RMagickでランダムに描画した円

動作環境
ruby1.8.6, rmagick2.9.0

Sunday, May 17, 2009

RMagickで画像を縮小・タイル配置して回転させる

RMagickで画像を縮小・タイル配置して回転させるには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf2.jpg")
images.virtual_pixel_method = TileVirtualPixelMethod
images.distort(ScaleRotateTranslateDistortion,
[0.25, 10]).write("sample1088a.png")

exit


上記では画像サイズを1/4(=0.25)に縮小して、10度傾けています。

元画像(sf2.jpg)


出力画像(sample1088a.png)
RMagickで画像を縮小・タイル配置して回転させた画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
RMagickで画像を台形変形させる (distortメソッドを使用して台形変形)
ImageMagickで画像を縮小してタイル配置にして回転させる (convertコマンドによる同様の処理)

Thursday, May 14, 2009

RMagickで画像をゴースト画像っぽく変換する

RMagickで画像をゴースト画像っぽく変換するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf2.jpg")
images.colorspace = GRAYColorspace
images[0] = images.edge(1).blur_image(0,1).spread(1).
motion_blur(0, 10, 260)
images.colorize(0.5, 0.5, 0.5, "#204070").
write("sample1087a.png")

exit


元画像(sf2.jpg)


出力画像(sample1087a.png)
RMagickでゴースト画像っぽく変換した画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで画像をゴーストっぽく変換する (convertコマンドでの似た処理)

Monday, May 11, 2009

RMagickで画像を点画のように変換する

RMagickで画像を点画のように変換するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.modulate(1, 2.5, 1).
sketch(0,10,135).spread(1).
write("sample1076a.png")

exit


元画像(sf.jpg)


出力画像(sample1076a.png)
RMagickで点画のように変換した画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで画像を点画のように変換する (convertコマンドでの同様の処理)

Saturday, May 09, 2009

RMagickで画像を立体的なタイル風に変換する

RMagickで画像を立体的なタイル風に変換するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf2.jpg")
images.alpha = ActivateAlphaChannel

# 角丸四角を描画
images2 = ImageList.new
images2.new_image(40, 40){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.roundrectangle(2,2, 37,37, 4,4)
dr.draw(images2)

# タイル上に配置
images3 = ImageList.new
images3.new_image(images.columns, images.rows,
TextureFill.new(images2))
images3.alpha = ActivateAlphaChannel

# 切り取り
img = images.composite(images3, 0, 0,
DstInCompositeOp).modulate(1.4)
img.colorspace = GRAYColorspace
img = img.colorize(0.5, 0.5, 0.5, "#fad759")

# 立体的にする
img2 = images3.shade(true, 135, 23).
blur_channel(0,2,AllChannels).normalize()

img4 = img2.composite(img, 0, 0,
OverlayCompositeOp)
img4.write("sample997a.png")

exit


元画像(sf2.jpg)


出力画像(sample997a.png)
RMagickで立体的なタイル風に変換した画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで画像から立体的なタイル画像に変換する (convertコマンドによる同様の処理)
RMagickで画像を角丸四角に切り取って立体的にする

Thursday, May 07, 2009

RMagickで透明な文字列を描画する

RMagickで透明な文字列を描画するには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images2 = ImageList.new
images2.new_image(images.columns-50, images.rows-50){
self.background_color = "white"
}
dr = Draw.new
dr.fill = "black"
# フォント
dr.font = "Tahoma"
# ポイントサイズ
dr.pointsize = 120
dr.gravity = CenterGravity
dr.text(0, 0, "SF")
dr.draw(images2)
images2[0] = images2.fx("r*0.5", AlphaChannel)
images2[0] = images2.fx("#000000", DefaultChannels)
images.composite(images2, CenterGravity, 0, 0,
OverCompositeOp).write("sample996a.png")

exit


(sf.jpg)


出力画像(sample996a.png)
RMagickで透明な文字列を描画した画像

動作環境
ruby1.8.6, rmagick2.9.0

Tuesday, May 05, 2009

RMagickで画像を円形に切り取って周囲を磨りガラスのようにする

RMagickで画像を円形に切り取って周囲を磨りガラスのようにするには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel
images.new_image(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.ellipse(images.columns/2, images.rows/2,
images.columns*0.8/2, images.rows*0.8/2,
0, 360)
dr.draw(images);
images[images.size-1] = images.negate_channel(
grayscale=false,AllChannels).
blur_channel(0,10,AllChannels).spread(3)
images.first.composite(images.last, 0, 0,
OverCompositeOp).write("sample995a.png")

exit


元画像(sf.jpg)


出力画像(sample995a.png)
RMagickで円形に切り取って周囲を磨りガラスのようにした画像

動作環境
ruby1.8.6, rmagick2.9.0

関連項目
ImageMagickで画像を磨りガラスのように切り取る (convertコマンドによる同様の処理)

Friday, May 01, 2009

RMagickで画像を4色グレースケールに変換する

RMagickで画像を4色グレースケールに変換するには、以下のコードを実行します。

require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.quantize(4, GRAYColorspace).
write("sample938a.jpg")

exit

元画像(sf.jpg)


出力画像(sample938a.jpg)
RMagickで4色グレースケールに変換した画像

動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで画像を4色グレースケールの画像に減色する

Monday, April 27, 2009

RMagickで緑っぽいところ以外をグレースケールにする

RMagickで緑っぽいところ以外をグレースケールにするには、以下のコードを実行します。

require 'RMagick'
include Magick

images = ImageList.new("sample8.jpg")
images.fx("(hue>0.19&&hue<0.40)?p:(r+g+b)/3",
DefaultChannels).write("sample937a.jpg")

exit



出力画像(sample937a.jpg)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで任意の範囲の色相の色を残す (convertコマンドでの同様の処理)

Thursday, April 23, 2009

RMagickで指定した矩形領域以外を暗くする

RMagickで指定した矩形領域以外を暗くするには、以下のコードを実行します。


require 'RMagick'
include Magick

# 画像の任意の矩形領域の境界をぼかしてその領域以外を暗くする
# 余白
padx = 20
pady = 20

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel
img2 = Image.new(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "blue"
dr.rectangle(padx,pady,images.columns-padx-1,images.rows-pady-1)
dr.draw(img2)
img2 = images.composite(
img2.blur_channel(0,5,AllChannels),
0, 0, DstInCompositeOp);

images = images.quantum_operator(MultiplyQuantumOperator, 0.5,
DefaultChannels).
composite(img2, NorthWestGravity, 0, 0, OverCompositeOp).
write("sample936a.jpg")

exit


元画像(sf.jpg)


出力画像(sample936a.jpg)
RMagickで指定した領域以外を暗くした画像

動作環境
ruby1.8.6, rmagick2.7.1

Sunday, April 19, 2009

RMagickで画像をセピア調のスケッチ画像に変換する

RMagickで画像をセピア調のスケッチ画像に変換するには、以下のコードを実行します。

require 'RMagick'
include Magick

# 画像を端がちぎれたようなセピア調のスケッチ画像に変換する
# 余白
padx = 10
pady = 10
images = ImageList.new("sf.jpg")
images[0] = images.modulate(0.8,1.0,1.0).
sepiatone(QuantumRange*0.80).sketch(0,10,120)
images.alpha = ActivateAlphaChannel

img2 = Image.new(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.rectangle(padx, pady,
images.columns-padx, images.rows-pady)
dr.draw(img2)

images.first.composite(img2.spread(5).median_filter(3),
0, 0, DstInCompositeOp).write("sample935.png")

exit


元画像(sf.jpg)


出力画像(sample035.png)
RMagickでセピア調のスケッチ画像に変換した画像

動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで、画像を端がちぎられたようなスケッチ調の画像に変換する

Wednesday, April 15, 2009

RMagickで画像を渦巻き模様で切り取る

RMagickで画像を渦巻き模様で切り取るには、以下のコードを実行します。


require 'RMagick'
include Magick

images = ImageList.new("sf.jpg")
images.alpha = ActivateAlphaChannel
images.new_image(images.columns, images.rows){
self.background_color = "none"
}
dr = Draw.new
dr.fill = "white"
dr.ellipse(images.columns/2, images.rows/2,
images.columns*0.8/2, images.rows*0.8/2,
0, 360)
dr.draw(images);
images.virtual_pixel_method = BackgroundVirtualPixelMethod
images.background_color = "none"
images[images.size-1] = images.blur_channel(0,10,AllChannels).
wave(images.columns/10, images.rows/10).
swirl(800).resize(images.columns, images.rows)
images.first.composite(images[images.size-1], 0, 0,
DstInCompositeOp).write("sample932a.png")


元画像(sf.jpg)


出力画像(sample932a.png)
RMagickで渦巻き模様に切り取った画像

動作環境
ruby1.8.6, rmagick2.7.1

関連項目
ImageMagickで画像を渦巻き模様で切り取る