Monday, November 27, 2006

ImageMagickで画像の左右反転を行う

ImageMagickで画像の左右反転を行うには、
-flopオプションを使用します。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe sample1.jpg -flop sample13.jpg

元画像(sample1.jpg)


左右反転画像(sample13.jpg)


関連項目
ImageMagickとPHPで、画像の上下反転・左右反転をおこなう (PHP&Imagick)

ImageMagickで文字列を画像で塗りつぶすには

ImageMagickで文字列を画像で塗りつぶすには
-tileオプションを使用します。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 240x80 xc:#fad759 -tile pattern1.gif -pointsize 70 -draw "text 0,60 Sample" sample12.jpg

パターン画像(pattern1.gif)


出力画像(sample12.jpg)


関連項目
ImageMagickとPHPで文字列を画像で塗りつぶす

ImageMagickで半透明の四角形を描画する

ImageMagickで半透明の四角形を描画するには、以下のコマンドを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 sample1.jpg -draw "fill #000000 fill-opacity 0.5 rectangle 30,30 70,70 fill #0000ff fill-opacity 0.3 rectangle 60,60 100,100" sample11.jpg

元画像(sample1.jpg)


半透明の四角形を描画した後(sample11.jpg)

Sunday, November 26, 2006

ImageMagickで飾り付き円または星型の描画

ImageMagickで飾り付き円または星型の描画は、
以下のようなpythonスクリプトでデータを作成して、
(エラー・例外処理は一切していない手抜きです。。。)
描画することでもできます。


import cmath

par=input("partition:")

rad1=input("radius1(large):")

rad2=input("radius2(small):")

dr1=0

dr2=360/(par*2)

dat="polygon "

while dr2<360: p1x="int(abs(rad1-cmath.cos(2*cmath.pi*(dr1+90)/360)*rad1))" p1y="int(abs(rad1-cmath.sin(2*cmath.pi*(dr1+90)/360)*rad1))" p2x="int(abs(rad1-cmath.cos(2*cmath.pi*(dr2+90)/360)*rad2))" p2y="int(abs(rad1-cmath.sin(2*cmath.pi*(dr2+90)/360)*rad2))" dat="dat+" dat="dat+" dr1 =" dr1" dr2 =" dr2" fd =" file('dc.txt','w')">>fd,dat

fd.close()



パラメータとして、分割数(partition)64、半径1(radius1)100、半径2(radius2)90を
指定するとdc.txtに座標データが出力されます。
>python decorated-circle.py
partition:64
radius1(large):100
radius2(small):90

そして以下のコマンドを実行すると
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x200 xc:#635854 -fill #c0b49d -draw @dc.txt sample10.jpg

ぎざぎざの飾り付き円が描画できます。(sample10.jpg)




ちなみにパラメータとして、以下の値を与えると、
>python decorated-circle.py
partition:5
radius1(large):100
radius2(small):30
星型の図形が描画できます。(star.jpg)

ImageMagickで縁取り+グラデーション塗りの文字列を描画するには

ImageMagickで縁取り+グラデーション塗りの文字列を描画するには、
以下のコマンドを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x60 xc:#ffffff -tile gradient:#ffffff-#f8c749 -stroke #c0c0ff -strokewidth 2 -pointsize 50 -draw "text 0,45 Sample" sample8.jpg

出力例(sample8.jpg)


透明な背景にしたい場合は以下のコマンドを実行します。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x60 xc:none -tile gradient:#ffffff-#f8c749 -stroke #c0c0ff -strokewidth 2 -pointsize 50 -draw "text 0,45 Sample" sample9.gif

出力例(sample9.gif)

ImageMagickで霧がかかったような効果

ImageMagickで霧がかかったような効果を表現するには、以下のコマンドを実行します。

rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem 半透明グラデーションを作成する
%im%\convert.exe -size 200x150 gradient:#ffffff-#000000 -matte -channel RGBA mask.png
rem 元画像と重ねあわせる
%im%\convert.exe -size 200x150 sample1.jpg -matte mask.png -compose screen -composite sample7.jpg

元画像(sample1.jpg)


処理した画像(sample7.jpg)
ImageMagickで画像に半透明グラデーションを重ね合わせた画像

関連項目
ScriptomとImageMagickで画像と半透明グラデーションを重ねる (ScriptomとImageMagickで同様の処理)

Thursday, November 23, 2006

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

ImageMagickでグラデーションの文字列描画

以下のようなコマンドを実行することで、グラデーションで塗られた
文字列を描画できます。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x60 xc:#e0e0ff -tile gradient:#ffffff-#303030 -pointsize 50 -draw "text 0,45 Sample" sample6.jpg

sample6.jpg


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

Tuesday, November 21, 2006

ImageMagickで文字列の描画

ImageMagickで文字列の描画するには以下のコマンドを実行します。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:#635854 -fill #c0b49d -pointsize 20 -draw "text 0,100 Sample" sample4.jpg

出力画像(sample4.jpg)


日本語の場合は、以下のようなテキストファイルをUTF-8で保存して、
sample5.txt
---------------------------------------
text 50,100 '日本語'
---------------------------------------
以下のコマンドを実行すると日本語で描画できます。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
%im%\convert.exe -size 200x150 xc:#635854 -fill #c0b49d -pointsize 20 -font "c:/winnt/fonts/msmincho.ttc" -draw @sample5.txt sample5.jpg
(フォントのディレクトリは環境によって変えてね)

出力画像(sample5.jpg)


関連項目
ImageMagickで、複数行文字列の左寄せ・中央寄せを指定する
ImageMagickで、日本語文字列から画像を生成する (label使用例)
ImageMagickとPHPで、画像に日本語の文字列を描画する
JMagickで画像の上に文字列を描画する
RMagickで日本語文字列を描画する
Java2Dで文字列を描画する

Thursday, November 16, 2006

ImageMagickで画像の四隅を丸く切り取る 方法

ImageMagickで、よく見かける画像の四隅を丸く切り取る 方法

元画像(sample1.jpg)


以下のようにマスクを作成して、切り抜くことができます。
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem マスクを作って。。。
%im%\convert.exe -size 200x150 -matte -channel RGBA xc:none -background none -fill white -stroke white -draw "roundrectangle 0,0 199,149 20,20" -negate mask.png
rem 画像を切り抜く。
%im%\convert.exe -size 200x150 sample1.jpg -matte mask.png -compose screen -composite sample1a.jpg

切り抜き後(sample1a.jpg)


ちょっと白背景だと判りづらいので、枠線をつけてみる。

set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem マスクを作って。。。
%im%\convert.exe -size 200x150 -matte -channel RGBA xc:none -background none -fill white -stroke white -draw "roundrectangle 0,0 199,149 20,20" -negate mask.png
rem 画像を切り抜く+枠線描画。
%im%\convert.exe -size 200x150 sample1.jpg -matte mask.png -compose screen -composite -fill none -stroke #808080 -draw "roundrectangle 0,0 199,149 20,20" sample1b.jpg

切り抜き後(sample1b.jpg)


切り抜いた部分を透過GIFにしたい場合は。。。
rem 環境によって変えてね
set im=C:\Progra~1\ImageMagick-6.3.0-Q16
rem マスクを作って。。。
%im%\convert.exe -size 200x150 -matte -channel RGBA xc:none -background none -fill white -stroke white -draw "roundrectangle 0,0 199,149 20,20" mask2.png
rem 画像を切り抜く+枠線描画。
%im%\convert.exe -size 200x150 sample1.jpg -matte mask2.png -compose dst_in -composite -fill none -stroke #808080 -draw "roundrectangle 0,0 199,149 20,20" sample1c.gif

切り抜き後(sample1c.gif)