Img

 Imgは、TkのPhotoイメージで読むことができる画像フォーマットを拡張するライブラリです。 これを使うと、下に示すように、現存するほとんどの画像フォーマットの画像データを Tcl/Tk のPhotoイメージとして使うことができます。

BMP、GIF、ICO、JPEG、PCX、PNG、PPM、 PS、SGI(IRIX RGB)、SUN(RS)、TGA、TIFF、XBM、XPM

Windows向けには、 ActiveTclの中にこれらの画像フォーマットを全てサポートしたバイナリ配布が含まれているので、 これを使えばよいでしょう。 使い方はとても簡単で、単に「package require Img」 と打つだけ。 または、プログラム中でどのフォーマットの画像データを使用するのかが限定されて分かっている場合には、 「package require img::bmp」 のように個別に指定することもできます。


サンプル

 使い方が上記のような簡単極まりない現状なので、 サンプルというほどのものも作れたり作りにくかったりしかねないわけですが、 下のプログラムはtkDNDと一緒に使ったもので、 ウィンドウの中にエクスプローラなどから画像ファイルをドラッグ・ドロップすると、 その画像が表示される、という簡単なビューアです。

package require tkdnd
package require Img

image create photo Image1
label .la -width 100 -height 100 -bg #808080 -image Image1 -relief ridge
bind .la <Button-3> exit

dnd bindtarget .la text/uri-list <Drop> {dropped %D}

proc dropped filenames {
    set filename [lindex $filenames 0]
    Image1 blank

    set command "Image1 read $filename"

    if {[catch { eval $command } err]} {
        tk_messageBox -message $err
    } else {
        .la configure -width [image width Image1] -height [image height Image1]
    }
}
pack .la -side top -ipadx 20 -pady 10

拡張レビュー分室 top
(first uploaded 2003/06/15 last updated 2003/06/15, MISUMI URANO)