Graphic Interchange format, a compact and popular way of storing images. [LZW]-encoded. Tk's [photo] type of [image] allows both reading and writing GIF files. See http://www.datacompression.info/GIF.shtml for a series of references relating to GIF. ---- [Salvatore Sanfilippo] 14Oct2004: you can find BSD-licensed code for pure-Tcl GIF LZW encoding at [http://wiki.hping.org/125]. ---- '''How to make a single-pixel GIF file:''' (but see also "[.gif color dot]" for a [pure-Tcl] version) % set im [image create photo -height 1 -width 1] image4 % $im put red % $im write im.gif -format gif % hexdump im.gif 47 49 46 38 37 61 01 00 01 00 91 00 00 FF 00 00 # 0000 GIF87a.......... FF FF FF FF FF FF FF FF FF 2C 00 00 00 00 01 00 # 0010 .........,...... 01 00 00 02 02 44 01 00 3B # 0020 .....D..; Loading that file indeed shows a single red pixel. (A "hexdump" command is described at [Dump a file in hex and ASCII].) ---- '''Writing a larger GIF file''' image create photo fooble -width 100 -height 100 fooble blank for { set x 0 } { $x < 100 } { incr x } { for { set y 0 } { $y < 100 } { incr y } { if { $x >= 38 && $x <= 62 && $y >= 12 && $y <= 87 || $x >= 12 && $x <= 87 && $y >= 38 && $y <= 62 } { fooble put \#ffffff -to $x $y } else { fooble put \#ff0000 -to $x $y } } } grid [label .test -image fooble] fooble write swissflag.gif -format gif ---- See also * [gifBalls] for examples how to specify base64-encoded GIF data directly. * [Creating image photo data from GIF files] * [AniGIF] - an extension for animated GIFs, and a way to read and display them in plain Tk * [gifblock] - simple package to play with GIF streams ---- The GIF format may now be freely used as the primary LZW patent (4,558,302) has expired. See [[http://en.wikipedia.org/wiki/GIF] ---- [Category Acronym] | [Category Graphics] | [Category File]