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.