
The scripts
# size
set size 128
package require Tk
# create image
image create photo img -width $size -height $size
# put colors
if 1 \
{
# compute colors
set pixels {}
set k [expr {128.0 / $size}]
for {set i 0} {$i < $size} {incr i} \
{
set row {}
for {set j 0} {$j < $size} {incr j} \
{
set R [expr {int($i * 2 * $k)}]
set G [expr {int(($i + $j) * $k)}]
set B [expr {int($j * 2 * $k)}]
lappend row [format #%02x%02x%02x $R $G $B]
}
lappend pixels $row
}
img put $pixels
# save image
img write test.ppm -format ppm
} \
else \
{
# read image
img read test.ppm
}
# set transparency
set s2 [expr {$size / 2}]
for {set i 0} {$i < $s2} {incr i} \
{
set i2 [expr {$s2 - $i}]
for {set j 0} {$j < $size} {incr j} \
{
if {$j > $i2 && $j < $size - $i2} { img transparency set $j $i 1 }
}
}
for {} {$i < $size} {incr i} \
{
set i2 [expr {$i - $s2}]
for {set j 0} {$j < $size} {incr j} \
{
if {$j > $i2 && $j < $size - $i2} { img transparency set $j $i 1 }
}
}
# display image
wm title . color
incr size 8
canvas .c -width $size -height $size -bg azure
.c create image 6 6 -anchor nw -image img
pack .cSee also- DKF: Note that these sorts of techniques are used in Functional Imaging

