Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
#!/usr/bin/perl -w use strict; use warnings; use Goo::Canvas; use Gtk2 '-init'; use Glib qw(TRUE FALSE); use MIME::Base64; # get a tiny map from web, if not previously downloaded if(! -e 'usa.gif'){ print "getting file from net\n"; &get_web_file; } sub get_web_file { use LWP::Simple; use HTTP::Status; my $URL = 'http://www.google.com/mapdata?CxXA8zUCHYWJS_og____________A +QwtwPM1AjWFiUv6QLACSJwBUgJVU2gBkAEP'; my $localfile = 'usa.gif'; my $rc = mirror( $URL, $localfile ); warn status_message( $rc ) if is_error( $rc ); print "done retrieval\n"; } my $window = Gtk2::Window->new('toplevel'); $window->signal_connect('delete_event' => sub { Gtk2->main_quit; }); my $canvas = Goo::Canvas->new(); $canvas->set_size_request(320, 160); $window->add($canvas); my $root = $canvas->get_root_item(); # base file my $im = Gtk2::Gdk::Pixbuf->new_from_file("usa.gif"); my $w = $im->get_width; my $h = $im->get_height; my $image = Goo::Canvas::Image->new( $root, $im, 0, 0, 'width' => $w, 'height' => $h); my $plane = get_plane(); my $pixbuf = do { my $loader = Gtk2::Gdk::PixbufLoader->new(); $loader->write( $plane ); $loader->close(); $loader->get_pixbuf(); }; my $pb2 = $pixbuf->add_alpha(1,0 ,0 ,0); # returns a new pixbuf # makes black transparent # use 0..255 for color levels, NOT hex my $w1 = $pb2->get_width; my $h1 = $pb2->get_height; my $image1 = Goo::Canvas::Image->new( $root, $pb2, $w/2, $h/2, 'width' => $w1, 'height' => $h1); $window->show_all(); my $id = Glib::Timeout->add (100, sub { $image1->rotate (5, $w/2, $h/2); #degrees ,center of rotation return 1; } ); Gtk2->main; sub get_plane{ return decode_base64( 'iVBORw0KGgoAAAANSUhEUgAAAFYAAAA/CAYAAAB6rT9lAAAABmJLR0QA/wD/AP+gvaeTA +AAACXBI WXMAAAsTAAALEwEAmpwYAAANhklEQVR42u2ay49cV17HP+dxX3WrqttuO227/QgmExPmFZ +OEPIAZ FjBICIksQOIPYMNq0Ii/AiHBLBAbVqxGGiSEEAgYgYhGQwKBSQLJMFach2On7Xba3VV13/ +e8WNxy 0rESYmcmMx2mvpuSSlW6v/O93/P9Pc6BFVZYYYUVPimIwxDEV8NXH3+e5xONOLbHXnSWz2 +y1LGSH ERopBMJNWQ9XuHxtjSPWEnYf42L3dfGn/3ZYidU/9ggCm//EP2Sv8uo4IR33uLjBjioK6f +FyCFKH nNy+zdVpTGQa6n7BXklgE8HOitg78Afh95/8G/4q1cRnR4zT+zm/5UG8xAtvA/qX+fIjAP +/CM/8J mItcPOvx4S3eTDVx+wCneTr81vk/En/y7IrYA3iNy+pNbiQbmKikjSuq2/EoQPX0SiDDMk +7XUGmP FTVFvMuu2+dm/BqX7Uqxd6DB4oCeIABmzHqPFRp5zOLldbbbZYhHJdLssmskOngQjl5YlG +w4lLwi f/whuJAiQoRyMToA+KVqPU4aGrGMUwLE6CCJjCL3GudXyesDkKFZQ9ubbM96SBwtHT6ZMj +1a0qtd ZqWAEKNlykjvsreXkLQd3eImt9ojrPkNpmFF7B04yzlznvvVLovuLXbCGhvjkv1+zNhCiy +Z2EoJE ujFT29G1E45ay6zZ4rg5xgmzyWm3qmM/BE+Fp770Ci8lc6oMiIB1IJ4wWQMoKOZAC8wBu8 +bR5nN8 vv2OeObbh9UK5GEI4gke6R/kC31OUgN9ijKAyYh9RuwBk5JawOSs1Q9yoX+cR8yq87rLRu +ExLv7M d3lhvMmpkzNm8SabGwDXuLZ3nOPdNttvf46Hm5d58X8Oa2NwqBS7fMU7G6y5nMQmRCEich +mZ06R+ ROJSUq/R/hwb7rCTejha2gNQxD5j7N7gyk1AzpnvL3dVN6c0pzjr1GANhx7ycBGrxAGLEn +dYVnC4 ANmnYrqlD1tAJXP5U5w7vsdMb7G1YQjiJtu7G2yYt3n7akOxIvbjwKKkwYgWJxsaBWAwqs +dZQB1Q 9coK7u1Na3+N7UVHWUl0kOhQU5fXuFJo9KfCXw+dYnsaYbFyOd2KCyqtIQAJYCs6UVKuiL +1XLOhl R5dc5OJD19nJIqIjEsIJToxPcqZ5gef/w+ObFbH3iNuTrIZGlSx0QqIBOjq99Fu5soIfqB +v0ApwQ gyUAQbKcuzaYFbEfE14jgyTxetkMSJzTw6xWaLRYEXuPiMgC4HeZ7Zcs2pKyW3Jdz5nXgB +WHeLh9 iFtaJYCQMPIxudUIJyH0BJsQhQQVxqQrxd4rHC4o8AtuVT2FG3NfKiE03GxuIZsO54e2dt +Ug3D0C JyvmCiAl8iBNSuxiYg+RGb6DGTNN4NRhJ/Z92+pr4WtPPMdzcUq6sWChYlQ2pxcbHJ0YOq +B/9/ce HyRSQBwUEBGFiqJMUL7HNTmpX9C2EzJfUraQAi0FBffzwNGe/nanFS5zuejomDFTFVWckq +8ZqjSQ JGDw+C5n2lUsZjl5P2bdpejwEA+tWWrh8WHKJHyfV/cnTICUhkasM05bWjEiyTo6EZNljl +6MyMeO XrT0HyqsEWnYpVjkjEOPa9YZhZp69yl+3tzNPQZ9QDGb/8jfpcsbKZOGNpbotMPrCWnqcB +KkBItE Cg8OIhTeS2TIyFxJEyLwPZ3IyLzFiATtblGSkASLElCplhA7yuWp61q4wpUeXFgeXokMJQ +z4lMhL lGyofQxUICsqVVEphRICnzhKAZAx9lfYzvVw0oDFyjHjpKPTKVHaE2SMzlqMGpPlhkb1eD +GsCzyI QSgWkF6hfEurJYkT2DQm7SyNWbBXEDiB4MZHEvu74fee+Db/nEGyNWKcrzHZnLGINHGWg7 +BYIYZD aSkQgAwaHVraVqJ9QdV4vKgpdERiLZ0GrMHojhiLVRbrb48Dd9g2DicHIneDwymWKzqwi3 +w0uJV/ n2EsyXc4scN23+CkghDThg5HR3VbhSIi0iWltKSypVUjEmUwkaCLOloZM84sXqakqceK4Q +FCCAIC /IQ8xKTe4usJuZ0Rbiqy+hwXxNPhV879X3fHNMBN3lTXuR5POZLUtJFARwvKWCFiR1DgpX +9vRhre HURB6MEBvqDoAd3RAaiW1jtADfZxcMvd7qLig7PW5W9ufxKhgkQtn6X8u4XDu00DssElgH +RAQ2MY DiJvdxCiYeh+W1oF6JZOe4gMrQZUTxkBuqeNee/uglgmHz8ot3GB4CxWNLTRLfbiBfvxDj +vdXVmB wPmK/a6jizbYSCKSJCFa7+lVRj51OBEIQiBCTV0nxAFEF6NCwWI2IncBsozM7HLz1pSx2q +dsD5An FSpxuPgc50+W3IqOc3Id8K/x2vaYsVvQ1BGEfRY9IAylGFTtzD4Ll5NOWowcM04LCvUgD2 +4B8h2u z46wYS7z+jWF0g7XHkzQa4zTgjI6xtFjNbUGkRt6OWZ9OvisjwxG5oxGbklshPIFxSIhdj +19GJHK GXtmn/1O3W25dR/3uxN8z3Z4u09lY1KvUQEkHic8XoZBmNIRgsMog7QSpRzCebx02GAwQh +FJQA7J DjEIeljgcstHM25FBVUa2I0lOhhMPme/82DdsBOWL9zJA9WLqAblqYIi8fhkxizusXJBlT +B0ZsmS VM2BB5vBQ2WPlT1WRCjh4d21DT7rpV1+gvQBLYcFCBGhiUm9AnucNZsw6k9x0n8ksX8u/u +w5AifO cU6A6xThpADb0QiHSXsab3FaIJXDeIn0EnxLVbZD3F1D4+MDuVAhb1vH7S0mT3JsbYfdVB +DGGplm ZBsSETSxHTPuF+wRkfQdnQLkF7h4JiDki3z3LcAnJFFHF01ZP1az0CnJRkQkFsycICiJnB +xlM93l +juAUCjhcEv3kDBcTxIdTW9B7DObA3FKOjEE2VBXEi3AG4N1Dls1dL0iKhWqcbAvieaXuP +S9S+LS zt1VBYIbT4bHzs/YVVucazSSgk73lDZjpFs6E0AbvPQ4r5G+x/QZsWtoTIwOMamP0V4hw2 +B33fuK +RYjPciWXvb0qqbWEiEsfVqz8H7waL9Um1oq/Hacdkl4VLPQPTatqWJPCBarWnoFPnLU7s +4yMoIg US4m9R5rPSFIWpGR6YbeZKQ2JhYCfETkBdgRmatoy5jU5uTtWU43JXuLX+SR+nXx+s7dl1 +vAN8Rf /iuBU1d4w93g2qjDTYYkMxsBScr4eE+tl8nMAX01EGE9+AVlXVI6D21J0w87EH8g4QHIMa +PMYNIU nTuQGXk4wlp3gxtdTt4VFAYIFcUdXjkZF1TJMe7bLJjHAsaaVChUERP78o4DSDUkPVlSth +5nd9m+ 5UFJdO5BVHQdeFmwqMArkE4Tu5b2HaAbKjxlQBc9VDvc+v5fiG9e/3gtrWD76fAbZ17kZV +NRuatc 1RJp99mPz3Ayr6i0XZYmDU0LkpQ4CISdM+9SolDS9FNyt6By6yTuFrUdas3czZn7oYRyeJ +wwBBnw yrx3csDtF5IxsQdsUlh88HhpsNLilSVIgfEBJyRSROAzcrfP3AFmRCJ7ejcldw29T0i0wa +gRSRTw 0oLxeJGR+aGm1iEjt1d5fb7JfZ0kLdbZsCPy8lEe7r8uLl2/287rA2cF76vPAqe+yGcvzJ +mnV7hS 9PRxSppwIDsYOiIin6CDHIrr1iKtxrUaYYEGkDvsRB5cjA4BXEVTG7yWS0Uvu7mwVEv/Mv ++1t3xE AmiNPvJeL65CS92IodqyGu0MLHbYKYAZ4CxyJNDKYrzHqwjpA0J1NLVZqtthREuNIgqGtg +NMQlKv c7R+iVcuId7YBvgOz/yQhzCC7V8LXzl9khdMh/MLap2TJt3ysvBBJIigyCiYNRMyXzGvM4 +6wxzOl gWiTTbPNtomJXUTi1VCnWoFyEdpLpE+G7O4Uqne4brARJcCJhMxLChuhvUI7UFIgQ4T1I0 +YesMfY NDtsNxFR/zCflzULmZDT0op11n1Pw3ux9wdiT8KCqh0z9gpVPc7PdS+JV7Y/0enWH4o//v +cfwpDl REQ0BbTF1w6DZmwkUuwz2+uoG48vSroaqB2u0yTO0sFQQvmSsvB4t8vNnR6fHeHIUUHwDt +f19A1Q pUQlcNUIc+OZe1TZQfwg//3RTrcEN7bYsoDLyFzKyI7IbMbIarQZMbUSzIiJA2zO0X6TE/ +0WWyYn N4BLyW1C5EZMbUzUj8lMzsilpP2EzAF2iy37UX38/7t57JTYj0isQjQRUTDYW8sqoVtnZC +uKGtpW k7c/y4X+eZ59DeAxnvzpS7wiJH0jQIwZrYEVBrsPPkREdUC0IxI/ZXooThh+pMRe4LPmGj +eq8zxQ j5l2E44oRyMtfbPGmhuRF5vc50ps90s82T0vnr0G8Gh48nSECBrR7LBrznJ6WjKXEalVRK +GlWhzj mNHI6iwXDPz94ZrHftL4Xnjh19/gqswZXyxo1HE2vgKwzbVvpcTuOjf+e8rU/7b4nb/+oP +9/M3zj N3ep5GlOfNHQiFOc/lWJCDvc+NaEiZtTvHSWLXdRPPq3P1GKPc9nzCanhEU2ll5kZAXAGc +6UGhkc pgbxoS/7F/hSV9ORMarAkpEVAiHOcbYEjcN0Cfmn4kxshRVWWGGFFVZYYYUVVlhhhRVWWG +GFFVb4 icP/Ao7nzeTzMzF3AAAAAElFTkSuQmCC'); }

In reply to Goo Canvas and transparent images by zentara

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2024-04-25 15:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found