TclMagickはGraphicsMagick(以下GM)寄りで、ImageMagick(以下IM)も
サポートしているというのは嘘ではないのだが、GMのバージョンアップが
遅れているせいなのか(遅れてるのかどうか知らないが)何なのか知らないが、
とにかくいつまでたっても(2年くらい)GMがIMのwand APIの重要なAPIを
とにかくいつまでたってもGMがIMのwand APIの重要なAPIを
取り込んでくれないので、仕方が無いので自分でパッチを書いた。~
IMにあってGMには無い機能は、他にもたくさんあると思うのだが、
その辺をどうするのかポリシーがよくわからないし、作者の方に聞くのも
めんどくさいし、結局GMに存在しないwand APIはIM互換の自作APIで代用し、
GMでもIMどちらでも、IMのAPIのTclラッパーを使えるようにした。ただし
IM用とGM用でバイナリが異なるので注意。
なお全ての対応していないAPIを取り込んだわけではなくて、自分が必要な
ものだけを2,3個取り込んだ。~
あとフォント名の取得が文字化けしていたので直した。~


***Download [#we11fd18]
-patch~
http://reddog.s35.xrea.com/software/TclMagick045mod.patch
-win32 binary for ImageMagick6.29-Q8~
http://reddog.s35.xrea.com/software/TclMagick-0.44m-IM6.29-Q8-win32.zip
-win32 binary for GraphicsMagick1.1.7-Q8~
http://reddog.s35.xrea.com/software/TclMagick-0.44m-GM1.1.7-Q8-win32.zip


***new wand API [#d3548c6e]
-compressionquality, GetCompressionQuality, SetCompressionQuality~
JPEGの圧縮率の変更。
-format, GetFormat, SetFormat~
GetFormatは前からあったのだが、フォーマットの変更をする
SetFormatが無かったので追加した。


***Examples [#w76be205]
-画像ファイルを開いてGIFのサムネイルをデータベースに格納~
 
 #======================================================
 # Open a file and Create GIF thumbnail on memory
 #======================================================
 package require TclMagick
 set THUMBSIZE 100
 set w [magick create wand]
 $w read c:/temp/テスト.bmp
 
 set width  [$w width]
 set height [$w height]
 if {$width > $height} {
     $w scale $THUMBSIZE [expr {int(1.0 * $THUMBSIZE / $width * $height)}]
 } else {
     $w scale [expr {int(1.0 * $THUMBSIZE / $height * $width)}] $THUMBSIZE
 }
 $w format GIF
 set thumbbin [$w writeblob]
 magick delete $w
 
 #======================================================
 # Store the raw data to DB 
 #======================================================
 package require sqlite3
 sqlite db :memory:
 db eval {create table t (id integer primary key, data blob);}
 db eval {insert into t values(NULL, :thumbbin);}
 
 #======================================================
 # Load the image and show it
 #======================================================
 pacakge require Tk
 set imgdata [lindex [db eval {select data from t where id=1;}] 0]
 image create photo img -data $imgdata
 pack [label .l -image img]


***コメントをどーぞ [#z5e54964]
#comment
----
[CategoryTclTk] [TclMagickの使い方]



|New|Edit|Diff|History|Attach|Copy|Rename|
HTML convert time: 0.003 sec.