#!/usr/bin/perl # # Grabs an image on the WWW and resizes it (with antialiasing) down so that it can be # displayed in a WindowMaker DockApp. # Need to give it the URL of the image like so; # # GrabWeather http://whatever.com/image.gif # require "ctime.pl"; # # Change to users home directory. We used to dump into /tmp # but using home dir instead avoids multiple users interfering # with one another. (Yeah, we could "unique-ize" the filenames, but # this is easier for now...) # $home = (getpwuid($<))[7]; $ok = chdir() || chdir($home); # # Check to see if .wmGrabImage exists. # If not, make it and move to it. # if ( !(-e ".wmGrabImage") ){ mkdir(".wmGrabImage", 0775); } chdir(".wmGrabImage"); $URL = $ARGV[0]; $Geometry = $ARGV[1]; $ImageName = $URL; $ImageName =~ s/.*\/(.*)$/\1/; if ($URL =~ /^file:\/\//) { $ImagePath = $URL; $ImagePath =~ s+file://(.*)+\1+; system("cp $ImagePath $home/.wmGrabImage/$ImageName"); } else { # # I think some of these wget command line options may cause problems # for some people? Dont know why... # $GrabCmd = "wget --proxy=off --passive-ftp --tries 0 -q -O $home/.wmGrabImage/$ImageName $URL"; system "$GrabCmd"; } if (! ($Geometry eq "") ) { system "convert -crop $Geometry $home/.wmGrabImage/${ImageName} $home/.wmGrabImage/${ImageName}.tmp.gif" ; system "convert -geom 54x54 $home/.wmGrabImage/${ImageName}.tmp.gif ${home}/.wmGrabImage/${ImageName}.tmp.xpm"; } else { system "convert -geom 54x54 $home/.wmGrabImage/${ImageName} ${home}/.wmGrabImage/${ImageName}.tmp.xpm"; } system "cat ${home}/.wmGrabImage/${ImageName}.tmp.xpm | sed -e \"s/Transparent/Black/\" \> ${home}/.wmGrabImage/${ImageName}.xpm; rm ${home}/.wmGrabImage/${ImageName}.tmp.xpm";