Thursday, January 11, 2007

ImageMagickで写真を立てて重ねた表現を描画する

ImageMagickで写真を立てて重ねた表現を描画するには、
枠をつけた後(ここでは使用していませんが6.3.1で-polaroidオプションが追加されましたね)、
-shearで縦方向に傾けて+cloneで画像を複製することで描画できます。

rem 環境によって変えてねset im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe sample2bg.jpg -bordercolor #fbfaf7 -border 4x4 -bordercolor #918164 -border 1x1 -bordercolor none -border 20x20 -background none -shear 0x10 -repage +10-15 ( +clone -repage +0+0 ) ( +clone -repage -10+15 ) -background #eeeeff -flatten sample48.png

元画像(sample2bg.jpg)


出力画像(sample48.png)

Tuesday, January 09, 2007

ImageMagickで切手風に画像をきりとる

ImageMagickで切手風にぎざぎざで画像を切り取るには
三角形を描画後、-tileで複製してマスクを作成して
切り取ります。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 9x7 xc:none -matte -channel RGBA -fill #ffffffff -draw "polygon 0,0 4,6 8,0" down.png
%im%\convert.exe down.png -matte -channel RGBA -rotate -90 right.png
%im%\convert.exe -size 100x100 xc:none -matte -channel RGBA -tile down.png -draw "rectangle 0,0 100,6" -tile right.png -draw "rectangle 0,0 6,100" ( +clone -flip -flop ) -composite mask2.png
%im%\convert.exe -size 100x100 sample2bg.jpg mask2.png -background white -compose screen -composite sample47.jpg

元画像(sample2bg.jpg)


出力画像(sample47.jpg)

Monday, January 08, 2007

ImageMagickで波模様の画像を切り取る

ImageMagickで波模様の画像を切り取るには、
-waveで波模様を作成した後、-rotateで
回転させ(waveは横方向なので)、
-draw&rectangleでwaveで抜けた部分を
塗りつぶしてマスクを作成します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 100x100 sample2bg.jpg ( xc:none -matte -channel RGBA -fill #ffffffff -background none -draw "rectangle 0,0 50,100" -rotate -90 -wave -10x100 -rotate 90 -draw "rectangle 0,0 25,100" -negate ) -background white -compose screen -composite sample46.jpg

元画像(sample2bg.jpg)


出力画像(sample46.jpg)

Friday, January 05, 2007

ImageMagickで文字に斜めの影をつける

ImageMagickで文字に斜めの影をつけるには、
-shadowで影を作った後、-affine&-transformで縦方向圧縮+移動の
後に、-shearで傾きをつけることでできます。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 250x50 xc:none -fill #f8c749 -pointsize 40 -draw "text 20,40 'S a m p l e'" ( +clone -background #101010 -shadow 30x2+4+4 -affine 1,0,0,0.5,-7,18 -transform -shear 45x0 ) +swap -background #ffffff -mosaic sample45.jpg

出力結果(sample45.jpg)

Thursday, January 04, 2007

ImageMagickでドット絵風の文字を描画する

ImageMagickでドット絵風の文字を描画するには、
小さいイメージで文字列を描画後、拡大します。

以下のコマンドだと、ぼやけた感じになります。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 40x10 xc:#f2ede9 -fill #74a2c3 -pointsize 9 +antialias -draw "fill-opacity 0.3 text 1,8 'M a g i c'" -resize 400x100 sample44a.jpg



以下のコマンドだと、くっきりとドット絵風に拡大されます。
%im%\convert.exe -size 400x100 xc:none ( -size 40x10 xc:#f2ede9 -fill #74a2c3 -pointsize 9 +antialias -draw "fill-opacity 0.3 text 1,8 'M a g i c'" ) -fx "v.p{int(i/10),int(j/10)}" sample44b.jpg



関連項目
ImageMagickでドット絵風の文字を描画する-その2

Tuesday, January 02, 2007

ImageMagickで画像の上にぼかした文字を描画する

ImageMagickで画像の上にぼかした文字を描画するには、
画像と文字のページを重ね合わせる前に、-blurでぼかします。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 -matte -channel RGBA xc:none -fill #fad759 -pointsize 40 -draw "text 20,100 Sample" -blur 2x2 sample1.jpg +swap -composite sample43a.jpg

元画像(sample1.jpg)


出力画像(sample43a.jpg)


文字を半透明にするいはfill-opacityで透明度を指定します。
%im%\convert.exe -size 200x150 -matte -channel RGBA xc:none -fill #fad759 -pointsize 40 -draw "fill-opacity 0.7 text 20,100 Sample" -blur 2x2 sample1.jpg +swap -composite sample43b.jpg

出力画像(sample43b.jpg)


関連項目
ImageMagickとPHPで半透明のぼかし文字列を描画する

Tuesday, December 26, 2006

ImageMagickでフィルム風の枠をつける

ImageMagickでフィルム風の枠をつけるには、
フィルムの穴の部分の画像を作成して、
-tileで左右分の画像を作成することで実現できます。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 15x8 xc:#302520 -fill #ffffff -stroke #ffffff -draw "roundrectangle 3,1 9,3 2,2" margin.png
%im%\convert.exe -size 15x79 tile:margin.png margin2.png
%im%\convert.exe -size 130x79 xc:black margin2.png -geometry 15x79+0+0 -composite -flop margin2.png -geometry 15x79+0+0 -composite sample3.jpg -geometry 100x75+15+2 -composite sample42.jpg

元画像(sample3.jpg)


出力画像(sample42.jpg)

Sunday, December 24, 2006

ImageMagickで楕円を描画する

ImageMagickで楕円を描画するにはellipseやarcを
使用します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 100x100 xc:#fffe99 -fill #fad759 -stroke #f4a729 -draw "ellipse 50,50 30,40 0,360" sample42a.jpg

出力画像(sample42a.jpg)


%im%\convert.exe -size 100x100 xc:#ffe9e7 -fill #fbdfdc -stroke #e1bfbd -draw "arc 10,20 89,79 0,360" sample42b.jpg

出力画像(sample42b.jpg)


rem 楕円描画+ぼかし+画像重ね合わせ
%im%\convert.exe -size 100x110 xc:#fffeee -fill #d9d4ce -stroke #d9d4ce -draw "arc 20,93 79,99 0,360" -blur 3x3 sample2.png -composite sample42c.jpg

出力画像(sample43c.jpg)

Thursday, December 21, 2006

ImageMagickで吹き出しを作成する - その3

ImageMagickで影付き吹き出しを作成するには
以下のバッチファイルを実行します。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20" -stroke #fce769 -draw "polygon 70,99 50,149 80,99" -stroke #f6b739 -draw "polyline 60,99 70,99 50,149 80,99 89,99" ( +clone -background #707070 -shadow 97x4+4+4 ) +swap -background #ffffff -mosaic sample44a.gif



影を斜めにつけるには、縦方向をaffine&transformで縮めて、
shearで傾けます。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20" -stroke #fce769 -draw "polygon 70,99 50,149 80,99" -stroke #f6b739 -draw "polyline 60,99 70,99 50,149 80,99 89,99" ( +clone -background #d0d0d0 -shadow 97x4+4+4 -affine 1,0,0,0.5,0,75 -transform -shear 30x0 ) +swap -background #ffffff -mosaic sample44b.gif



関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する

Wednesday, December 20, 2006

ImageMagickで枠をつける

ImageMagickで枠をつけるには、以下のバッチファイルのように
-borderで幅・高さ、-bordercolorで枠の色を指定することで
できます。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe sample2bg.jpg -bordercolor #e2dcce -border 10x10 sample37a.jpg
%im%\convert.exe sample2bg.jpg -bordercolor #fbfaf7 -border 10x10 -bordercolor #918164 -border 5x5 sample37b.jpg

元画像(sample2bg.jpg)


出力画像(sample37a.jpg)


出力画像(sample37b.jpg)


関連項目
ImageMagickとPHPで、画像に枠をつける
im4javaで画像に枠をつける

Tuesday, December 19, 2006

ImageMagickでグラデーションの斜線を重ね合わせる

ImageMagickでグラデーションの斜線を重ね合わせるには
以下のようなバッチファイルで実行できます。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem マスク作成
%im%\convert.exe -size 100x100 xc:#ff0000ff -channel RGBA -fx "(i+j)%%5==0?u:0" mask.png
rem 半透明グラデーション
%im%\convert.exe -size 100x100 mask.png -channel A -fx "(i+j)%%5==0?((h-j)/h)*0.9:0" mask2.png
rem 重ね合わせ
%im%\convert.exe -size 100x100 sample2bg.jpg -matte -channel RGBA mask2.png -compose atop -composite sample36.jpg

元画像(sample2bg.jpg)


マスク(mask.png)


グラデーションのかかったマスク(mask2.png)


出力結果(sample36.jpg)

Monday, December 18, 2006

ImageMagickで斜線を重ね合わせる

ImageMagickで斜線を重ね合わせるには、
以下のバッチファイルのように斜線のマスクを作成してから
重ね合わせます。
-fxの式のシンボルの意味は以下の通りです。
i : カラムオフセット
j : 行オフセット
u : 最初のイメージシーケンス

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 100x100 xc:#ffff00ff -channel RGBA -fx "(i+j)%%5==0?u:0" mask.png
%im%\convert.exe -size 100x100 sample2bg.jpg -matte -channel RGBA -antialias mask.png -compose atop -composite sample35.jpg

元画像(sample2bg.jpg)


出力結果(sample35.jpg)

Sunday, December 17, 2006

ImageMagickで半透明の文字を描画する

ImageMagickで半透明の文字を描画するには、
fill-opacityで透明度を指定します。

サンプルバッチファイル
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:#f2ede9 -fill #74a2c3 -pointsize 30 -draw "fill-opacity 0.3 text 20,100 Sample text 25,90 Transparent" sample34.jpg

出力画像(sample34.jpg)

Thursday, December 14, 2006

ImageMagickで画像に影をつける

ImageMagickで画像に影をつけるには、
文字と同様に+cloneでコピーして-shadowで影をつけます。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 sample1.jpg sample2.png ( +clone -background #000000 -shadow 40x2+3+3 ) +swap -mosaic sample33a.jpg

元画像1(sample1.jpg)


元画像2(sample2.png)


出力結果(sample33a.png)

Wednesday, December 13, 2006

ImageMagickで文字に影をつける

ImageMagickで文字に影をつけるには
+cloneでコピーしてから-shadowで影をつけます。

サンプル
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill #000000 -pointsize 30 -draw "text 20,100 Sample" ( +clone -background #000000 -shadow 40x2+3+3 ) +swap -background #ffffff -mosaic sample32a.jpg
%im%\convert.exe -size 200x150 xc:none -fill #ffffff -pointsize 30 -draw "text 20,100 Sample" ( +clone -background #80c0ff -shadow 97x4+0+0 ) +swap -background #304050 -mosaic sample32b.jpg

出力結果1(sample32a.jpg)


明るい色で影をつけると、文字の裏側から光源で
照らしたような感じになります。
出力結果2(sample32b.jpg)

Tuesday, December 12, 2006

ImageMagickで吹き出しを作成する - その2

想像などのセリフの吹き出しを作成するには、
以下のようにroundrectangleとcircleで描画できます。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill white -stroke black -draw "roundrectangle 0,0 199,99 20,20 circle 70,110 77,117 circle 60,128 65,133 circle 50,140 53,143" sample27a.gif

出力画像(sample27a.gif)


%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20 circle 70,110 77,117 circle 60,128 65,133 circle 50,140 53,143 " sample27b.gif

出力画像(sample27b.gif)


関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する

Monday, December 11, 2006

ImageMagickで吹き出しを作成する - その1

ImageMagickで吹き出しを作成するには、
以下のようなバッチファイルで作成することもできます。

吹き出し部分はroundrectangleで描画し、吹き出し線部分はpolylineで描画。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill white -stroke black -draw "roundrectangle 0,0 199,99 20,20 polyline 70,99 50,149 80,99" sample26a.gif

出力結果(sample26a.gif)


色をつけて太く描画する場合は、以下のバッチファイルを実行します。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:none -fill #fce769 -stroke #f6b739 -strokewidth 4 -draw "roundrectangle 5,5 194,99 20,20" -stroke #fce769 -draw "polygon 70,99 50,149 80,99" -stroke #f6b739 -draw "polyline 60,99 70,99 50,149 80,99 89,99" sample26b.gif

出力結果(sample26b.gif)


関連項目
ImageMagickで、半透明グラデーションの吹き出しを描画する
ImageMagickで、明度を変えた吹き出しを描画する
ImageMagickで吹き出しを作成する - その4
ImageMagickで吹き出しを作成する - その3
ImageMagickで吹き出しを作成する - その2

Sunday, December 10, 2006

ImageMagickで網掛けをする

ImageMagickで画像に対して網掛けするには、
-fxオプションで偶数の縦・横ラインで明るさを変更することで
実現できます。

サンプルバッチファイル
rem 環境によって変えてね。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe sample1.jpg -fx 'i%%2*j%%2?p:p*1.7' sample25a.jpg
%im%\convert.exe sample1.jpg -fx 'i%%2*j%%2?p:p*0.7' sample25b.jpg

元画像(sample1.jpg)


明るく網目を掛けた場合(sample25a.jpg)


暗く網目を掛けた場合(sample25b.jpg)


関連項目
ImageMagickとPHPで画像に網掛けをする

Thursday, December 07, 2006

ImageMagickで鏡面写りこみを作成する - その1

ImageMagickで鏡面写りこみを作成するには、
半透明グラデーションを適用して上下反転させることで
表現できます。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem 半透明グラデーションをかけて
%im%\convert.exe -size 100x100 -matte -channel A gradient:#000000ff-#00000000 sample2.png -compose multiply -composite -flip sample2d.png
rem 重ね合わせ
%im%\convert.exe -size 100x200 xc:#1a87b0 -matte sample2d.png -geometry +0+100 -compose screen -composite sample2.png -geometry +0+10 -compose atop -composite sample24.jpg

元画像(sample2.png)


出力結果(sample24.jpg)

Wednesday, December 06, 2006

ImageMagickで半透明グラデーションをかけて重ね合わせする

ImageMagickで半透明のグラデーションをかけて
画像を重ね合わせするには、以下のコマンドを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem 半透明グラデーションをかけて
%im%\convert.exe -size 100x100 -matte -channel A gradient:#000000ff-#00000000 sample2.png -compose multiply -composite sample2.png -compose dst_in -composite sample2b.png
rem 重ね合わせ
%im%\convert.exe sample1.jpg -matte sample2b.png -geometry +15+20 -compose screen -composite sample23.jpg

元画像1(sample1.jpg)


元画像2(sample2.png)


うっすらと黄色い花の画像が重ねられています。
出力結果(sample23.jpg)


12/11訂正
間違えてました。。。
透明色以外の所にalphaチャンネルに対し-fxで
グラデーションをつけて、atopで重ねたほうが
良いです。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem 半透明グラデーションをかけて
%im%\convert.exe -size 100x100 sample2.png -channel A -fx "u!=0?j/h:0" sample2a.png
rem 重ね合わせ
%im%\convert.exe sample1.jpg -matte sample2a.png -geometry +15+20 -compose atop -composite sample23b.jpg

出力結果(sample23b.jpg)