http://qs1969.pair.com?node_id=70940


in reply to Question about Tk Canvas, pixels, and images

Use Tk::Photo to create a blank image and then the Canvas' createImage method to install it onto the Canvas. Once there, you can manipulate its pixels individually, like this:
use Tk; $mw = Tk::MainWindow->new; $can = $mw->Canvas(-width => 320, -height => 240)->pack(); $img = $mw->Photo(-width => 320, -height => 240, -palette => '256/256/ +256'); $img->blank; $can->createImage(0, 0, -image => $img, -anchor => 'nw'); $img->put(RED, -to => (160, 120)); printf "%6.6X", $img->get(160, 120); MainLoop();
This code puts a red dot in the middle of a transparent image, then reads and outputs its color in hex. The documentation that covers this comes with the ActiveState distribution of Tk, but I'm sure you can find it on the web if you're not using that distro.