Sunday, December 30, 2007

ImageMagickで画像に横線と横線の入った文字列を描画する

画像に横線と横線の入った文字列を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 200x200 xc:white -fx "j%%4==0?1:0"
( -size 200x200 xc:none +antialias -font Tahoma-Bold
-gravity center -fill white -draw "font-size 100 text 0,0 'SF'"
-matte -channel rgba -fx "j%%4<2?0:p" ) -composite -negate
-matte -channel a -fx "r" -channel rgba sf.jpg -compose src_in
-composite -size 200x200 xc:#e0e0e0 +swap -composite sample264a.png

元画像(sf.jpg)


出力画像(sample264a.png)


関連項目
ImageMagickで横線の入った文字を描画する

ImageMagickでディザリングをオフにして減色する

ディザリングをオフにして減色するには、+ditherオプションを使用します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf.jpg +dither -colors 32 sample263a.png

元画像(sf.jpg)


出力画像(sample263a.png)

ImageMagickで画像を減色する

ImageMagickで画像を減色するには、-colorsオプションを使用します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf.jpg -colors 32 sample262.gif

元画像(sf.jpg)


出力画像(sample262.gif)


関連項目
ImageMagickで画像を4色グレースケールの画像に減色する
ImageMagickでディザリングをオフにして減色する

ImageMagickで文字列の端を絞り込む

文字列の端を絞り込むには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe -size 300x150 -gravity center -pointsize 50 -fill #bbddff
-font Tahoma label:ImageMagick -virtual-pixel background
-background white -fx "p{i,(j-cos(pi*i/w*2)*0.7*h/2)/(1-cos(pi*i/w*2)*0.7)}"
sample261.jpg

出力画像(sample261.jpg)

関連項目
ImageMagickで文字列の中央をへこませる

Saturday, December 29, 2007

ImageMagickで画像の暗い部分を明るくする

画像の暗い部分を明るくするには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sf.jpg ( sf.jpg -matte -channel a -fx "luminosity<0.4?p:0" -modulate 160 ) -composite sample259a.png
元画像(sf.jpg)


出力画像(sample259a.png)

街路樹や影になっている部分が明るくなっています。

2008/07/13追記
ver6.4.0あたりからluminosityからlightnessに変わったので、以下のバッチを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.4.2-Q16
%im%\convert.exe sf.jpg ( sf.jpg -matte -channel a -fx "lightness<0.4?p:0" -modulate 160 ) -composite sample259a.png

関連項目
ImageMagickとPHPで画像の暗い部分を明るくする (Imagickによる同様の処理)

ImageMagickで元画像から色調を変えた画像に徐々に変わっていく画像を生成する

ImageMagickで元画像から色調を変えた画像に徐々に変わっていく画像を
生成するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sample10.jpg -matte -channel A -fx
"sqrt(pow(150-i,2)+pow(50-j,2))<50?1:1-(sqrt(pow(150-i,2)+
pow(50-j,2))-50)/50" -channel rgba ( sample10.jpg
-modulate 100,100,60 ) +swap -composite sample258a.jpg

上記バッチファイルでは、座標(150,50)を中心に半径50ピクセルは
元画像そのままで、半径50ピクセルより大きい部分は徐々に
透明になっていくようにして、色調を変更した画像と重ね合わせています。

元画像(sample10.jpg)


出力画像(sample258a.jpg)


関連項目
ImageMagickでだんだんと白黒画像になっていくグラデーションを作成する

Saturday, December 22, 2007

ImageMagickで、2値化した画像部分を盛り上がらせる

2値化した画像部分を盛り上がらせるには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe sample5r.jpg -threshold 53000 -negate -matte -channel A
-fx "p.r==1?1:0" -channel rgba -shade 135x23 -blur 0x2 -normalize
sample5r.jpg -compose overlay -composite sample257a.png

元画像(sample5r.jpg)


出力画像( sample257a.png)


関連項目
ImageMagickで2値化したのちグラデーションで塗りつぶす

ImageMagickで、画像を荒いドットで切り取る

画像を荒いドットで切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe tree1.jpg -threshold 33000 -negate -resize 30 -fx "p>0.1?1:0" -channel rgb -matte -channel a -fx "r" -channel rgba -filter Point -resize 300 tree1.jpg -compose src_in -composite sample256a.png

上記のバッチでは、2値化した画像をモザイク調に変換し、それをマスクとして画像を切り取っています。

元画像(tree1.jpg)


出力画像(sample256a.png):黒い部分は透過するPNG画像です。

Sunday, December 16, 2007

ImageMagickで、画像を2値化してメッシュ状にした透過PNGを生成する

画像を2値化してメッシュ状にした透過PNGを生成するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe tree1.jpg -threshold 40000 -negate -matte -channel a -fx "r" -channel rgb -fx "#3070A0FF" -channel rgba -fx "(i%%2==0)&&(j%%2==0)?p:0" sample255a.png

元画像(tree1.jpg)


出力画像(sample255a.png)


関連項目
JMagickで、画像を2値化してメッシュ状にした透過PNGを生成する (JMagickでの同様の処理)
ImageMagickで、画像の輪郭を影で浮かび上がらせた画像を生成する

Saturday, December 15, 2007

ImageMagickで、画像の輪郭を影で浮かび上がらせた画像を生成する

画像の輪郭を影で浮かび上がらせた画像を生成するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.7-Q16
%im%\convert.exe tree1.jpg -threshold 40000 -negate -matte -channel a -fx "r"
-channel rgb -fx "#3070A0FF" -channel rgba ( +clone -background #FFFFFF
-shadow 97x4+0+0 ) +swap -background #3070A0FF -mosaic
-crop 300x225+0+0 sample254a.png

上記バッチでは、画像を2値化して、白の影付けを行い、背景色は青っぽい色に
設定しています。

元画像(tree1.jpg)


出力画像(sample254a.png)


関連項目
ImageMagickで閾値を使用して切り取った画像に影付けする
ImageMagickで、画像を2値化して白色部分は元画像のままで黒色部分は影付けした画像を生成する
ImageMagickとPHPで画像の輪郭を影で浮かび上がらせた画像を生成する (Imagickによる同様の処理)

Sunday, December 09, 2007

ImageMagickで、描画した円部分以外の所の彩度を落とす

描画した円部分以外の所の彩度を落とすには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe -size 200x200 xc:none -matte -channel rgba -fill white -draw
"ellipse 50,140 35,35 0,360 ellipse 110,90 25,25 0,360 ellipse 160,50 20,20 0,360"
sf.jpg -compose srcin -composite ( sf.jpg -modulate 100,20 ) +swap -composite sample253.png

上記のバッチファイルでは、画像を3つの円で切り取り、彩度を下げた画像と重ね合わせています。

元画像(sf.jpg)


出力画像(sample253.png)

Sunday, December 02, 2007

ImageMagickでバンド状にグラデーションのかかった文字を描画する

バンド状にグラデーションのかかった文字を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16

%im%\convert.exe -size 300x50 xc:none -matte -channel rgba -pointsize 40 -gravity center -draw "text 0,0 ImageMagick" ( -size 1x1 xc:#3070A0FF xc:#FFFF10FF -append
-resize 1x8! -filter Point -resize 300x50! ) -compose srcin -composite sample252.png

出力画像(sample252.png)


関連項目
ImageMagickでグラデーション付きの文字列描画

Saturday, November 24, 2007

ImageMagickで丸ドットの文字列を描画する

丸ドットの文字列を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe -size 400x100 xc:white ( -size 40x10 xc:#f2ede9 -fill #74a2c3 -pointsize 9 +antialias -gravity center -draw "text 0,-2 'M a g i c'" )
-fx "(i%%10-5)^2+(j%%10-5)^2<=4^2?v.p{floor(i/10),floor(j/10)}:#FFFFFF}" sample251a.png

出力画像(sample251a.png)


別バージョン。
%im%\convert.exe -size 400x100 xc:white ( -size 40x10 xc:#f2ede9 -fill #74a2c3 -pointsize 9 -gravity center -draw "text 0,-1 'Magic'" )
-fx "(i%%10-5)^2+(j%%10-5)^2<=5^2?v.p{i/10,j/10}:#FFFFFF}" sample251b.png

出力画像(sample251b.png)

Friday, November 23, 2007

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

ドット絵風の文字を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-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'" -filter Point -resize 400x100 sample250a.jpg

出力画像(sample250a.jpg)


関連項目
ImageMagickで丸ドットの文字列を描画する

ImageMagickで、画像を凸凹タイルに貼り付けたように加工する

画像を凸凹タイルに貼り付けたように加工するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe -size 20x20 xc:white -channel r -fx "rand()" -channel gb -fx "r"
-channel rgb -filter Point -resize 200x200 -matte -channel a
-fx "(i%%10==0)(j%%10==0)?0.6:0.3" -channel rgba -size 200x200 sf.jpg
+swap -composite sample249a.png

元画像(sf.jpg)


出力画像(sample249a.png)

ImageMagickで黄色だけを強調してにじませる

黄色だけ強調してにじませるには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe sf.jpg -modulate 80,20 ( sf.jpg -matte -channel a
-fx "(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?1:0"
-channel rgb -modulate 100,150 -channel rgba ) -composite ( sf.jpg -matte -channel a
-fx "(hue>0.11&&hue<0.19&&intensity<0.93&&saturation>0.5)?0.9:0"
-channel rgba -blur 5x10 ) -composite sample248a.png

バッチファイルでは、黄色以外を若干暗めにして彩度を落とし、黄色では彩度を強め、黄色の
部分にぼかしをかけた画像を重ね合わせています。


元画像(sf.jpg)


出力画像(sample248a.png)


関連項目
ImageMagickとPHPで黄色だけを強調してにじませる (Imagickによる同様の処理)

Saturday, November 17, 2007

ImageMagickでバンド状にグラデーションがかかった円を描画する

バンド状にグラデーションがかかった円を描画するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe -size 200x200 xc:none -channel rgba
( -size 1x1 xc:#3070A0FF xc:#FFFF10FF +append -resize 2x1 ) -fx "(i-90)^2+(j-130)^2<=150^2?v.p{floor(sqrt((i-90)^2+(j-130)^2)/
10)*10/150,0}:#FFFF10FF" sample247a.png

出力画像(sample247a.png)


関連項目
ImageMagickで、グラデーションのかかった同心円を描画する
ImageMagickでグラデーションのかかった同心円の模様を描画する

ImageMagickでバンド状のグラデーションを作成する

バンド状のグラデーションを作成するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe -size 1x1 xc:#000000 xc:#BBDDFF -append -resize 1x10! -filter Point -resize 100x100! sample246a.png

出力画像(sample246a.png)


別のやり方。
%im%\convert.exe -size 100x100 xc:white ( -size 1x1 xc:#3070A0FF xc:#FFFF10FF -append -resize 1x2 ) -fx "v.p{0,floor(j/10)*10/h}" sample246b.png

出力画像(sample246b.png)


関連項目
ImageMagickとPHPで、バンド状グラデーションを描画する
JMagickでバンド状のグラデーションを描画する

Saturday, November 10, 2007

ImageMagickでchannel毎に位置をずらす

ImageMagickでchannel毎に位置をずらすには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe sf.jpg -channel r -fx "p[-10,0]" -channel b -fx "p[+10,0]" -channel rgba sample245a.jpg

元画像(sf.jpg)


出力画像(sample245a.jpg)


白黒化してから、channel毎に位置をずらす場合は、以下のバッチファイルを実行します。
%im%\convert.exe sf.jpg -fx "(r+g+b)/3" -channel r -fx "p[-10,0]" -channel b -fx "p[+10,0]" -channel rgba sample245b.jpg

出力画像(sample245b.jpg)

Saturday, November 03, 2007

ImageMagickで、2値化して画像を切り取って白背景でぼかす

2値化して画像を切り取って白背景でぼかすには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe sample5r.jpg -threshold 53000 -negate -matte -channel A -fx "p.r==1?1:0" -channel rgba sample5r.jpg -compose src_in -composite ( -size 100x100 xc:white ) +swap -composite -blur 0x2 sample243a.png

元画像(sample243a.png)


出力画像(sample243a.png)


関連項目
ImageMagickで二値化して大きめに選択した領域をぼかして切り取り
ImageMagickで画像の2値化切り取りと重ねあわせ処理する
ImageMagickで閾値を使用して切り取った画像に影付けする

ImageMagickで文字ごとに背景色が異なる文字列を描画する

文字ごとに背景色が異なる文字列を描画するには、以下のWSHスクリプトを実行します。

wb-letters.vbs
-----------------
Set im = CreateObject("ImageMagickObject.MagickImage.1")
rem 出力文字列(英文字のみ)
message_string = "ImageMagick"

color1="#ffffff"
color2="#000000"

For wl=1 to Len(message_string)
ch = Mid(message_string,wl,1)
If (wl mod 2) = 0 then
current1 = color1
current2 = color2
else
current1 = color2
current2 = color1
end if

im.Convert "-size", "20x20", "xc:" & current1, "-fill", current2, _
"-font", "Tahoma-Bold", "-gravity", "center", "-draw", _
"font-size 15 text 0,0 '" & ch & "'", "t" & wl & ".png"

if wl = 1 then
im.Convert "t1.png", "output.png"
else
im.Convert "output.png", "t" & wl & ".png", "+append", "output.png"
end if

Next

Set im = Nothing
-----------------

cscript.exe wb-letters.vbs

出力画像(output.png)

Sunday, October 28, 2007

ImageMagickで、画像をずらしてタイル配置する

画像をずらしてタイル配置するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe flower1.png -roll +0+10 flower1.png +append t1.png
%im%\convert.exe -size 200x200 tile:t1.png sample244a.png

元画像(flower1.png)


出力画像(sample244a.png)


以下のバッチファイルでも上の出力画像と同様の結果が得られます。

rem メモリを利用して一時的なイメージを保存、タイル描画
%im%\convert.exe flower1.png -roll +0+10 flower1.png +append -write mpr:t1 +delete -size 200x200 tile:mpr:t1 sample244a.png

Saturday, October 27, 2007

ImageMagickで、縁取りつきの角丸四角で画像を切り取る

縁取りつきの角丸四角で画像を切り取るには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16

%im%\convert.exe -size 200x200 xc:none -draw "roundrectangle 4,4 195,195 20,20" sf.jpg -compose srcin -composite ( -size 200x200 xc:none -fill white -stroke #D0D0D0 -draw "roundrectangle 0,0 199,199 20,20" ) +swap -composite sample242a.png

上記のバッチでは、角丸四角で切り取り後、枠付き角丸四角と合成しています。

元画像(sf.jpg)


出力画像(sample242a.png:黒い部分は透過になります)


関連項目
ImageMagickで画像の四隅を丸く切り取る 方法
ImageMagickで画像を角丸四角に切り取って端折処理する
ImageMagickで角丸四角画像の端をグラデーションで塗る
ImageMagickで画像に立体的な枠をつける
ImageMagickで画像に立体的な角丸四角の枠をつける

Saturday, October 20, 2007

ImageMagickで花のような画像を生成する

花のような画像を生成するには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
%im%\convert.exe -size 100x40 xc:white -fx "38*sin(pi*((i+10)%%20)/20)>=j?#FFFFFF:#F8C749" -virtual-pixel white
-distort arc 360 +repage sample241a.png

出力画像(sample241a.png)


%im%\convert.exe -size 100x40 xc:white -fx "38-38*sin(pi*(i%%20)/20)<j?#F8C749:#FFFFFF" -virtual-pixel white -distort arc 360 +repage sample241b.png

出力画像(sample241b.png)

Saturday, October 13, 2007

ImageMagickで台形変形を行う

台形変形を行うには、以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.6-Q16
rem 右台形
%im%\convert.exe sf.jpg -matte -virtual-pixel transparent -distort Perspective "0,0 0,0 0,200 0,200 200,200 200,180 200,0 200,20" sample240a.png
-distortオプションでPerspectiveを指定して変換前後の4点の座標を指定します。

元画像(sf.jpg)


出力画像(sample240a.png)


rem 左台形
%im%\convert.exe sf.jpg -matte -virtual-pixel transparent -distort Perspective "0,0 0,20 0,200 0,180 200,200 200,200 200,0 200,0" sample240b.png

出力画像(sample240b.png)


rem 上台形
%im%\convert.exe sf.jpg -matte -virtual-pixel transparent -distort Perspective "0,0 20,0 0,200 0,200 200,200 200,200 200,0 180,0" sample240c.png

出力画像(sample240c.png)


rem 下台形
%im%\convert.exe sf.jpg -matte -virtual-pixel transparent -distort Perspective "0,0 0,0 0,200 20,200 200,200 180,200 200,0 200,0" sample240d.png

出力画像(sample240d.png)


関連項目
RMagickで画像を台形変形させる
ImageMagickで画像を三角形・台形に変形する

ImageMagickで任意の大きさの楕円の背景画像を生成する

任意の大きさの楕円の背景画像を生成するには、
以下のバッチファイルを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.5-Q16
%im%\convert.exe -size 120x100 xc:none -fx "(i%%40-20)^2/19^2+(j%%20-10)^2/9^2<=1?
#F8C749FF:#FFFFFFFF" sample238a.jpg

出力画像(sample238a.jpg)