Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Question about Tk Canvas, pixels, and images

by atcroft (Monsignor)
on Apr 09, 2001 at 09:12 UTC ( #70931=perlquestion: print w/ replies, xml ) Need Help??
atcroft has asked for the wisdom of the Perl Monks concerning the following question:

I humbly beseech your knowledge, as I have been to the meager limits of my search abilities but to no avail.

I am using 'use Tk;' and the Canvas object for creating displays on a screen. I am looking for a way to manipulate it at a pixel-level for parts of what I need to do. So far, I finally found a way to create an individual pixel (CreateText, using a '.' -is there a better way), but I cannot seem to find information on:
(a) how to create an savable image from a Canvas, or
(b) how to get the color of a pixel at a particular location on a Canvas.

Your guidance I humbly seek.

-----
A journey of a 1000 lines of code begins with a single keystroke.

Comment on Question about Tk Canvas, pixels, and images
Re: Question about Tk Canvas, pixels, and images
by Dr. Mu (Hermit) on Apr 09, 2001 at 10:45 UTC
    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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://70931]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2014-07-12 10:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (239 votes), past polls