From: Lincoln S. <ls...@us...> - 2008-08-20 00:12:02
|
Update of /cvsroot/gmod/Generic-Genome-Browser/libnew/Bio/Graphics/Browser In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv6977/libnew/Bio/Graphics/Browser Modified Files: DataSource.pm RenderPanels.pm Removed Files: Karyotype.pm Log Message: basic hits-on-karyotype class added -- not complete --- Karyotype.pm DELETED --- Index: RenderPanels.pm =================================================================== RCS file: /cvsroot/gmod/Generic-Genome-Browser/libnew/Bio/Graphics/Browser/RenderPanels.pm,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** RenderPanels.pm 18 Aug 2008 16:53:38 -0000 1.27 --- RenderPanels.pm 20 Aug 2008 00:12:10 -0000 1.28 *************** *** 242,246 **** my $width = $data->width; my $height = $data->height; ! my $url = $self->generate_image($gd); # for debugging --- 242,246 ---- my $width = $data->width; my $height = $data->height; ! my $url = $self->source->generate_image($gd); # for debugging *************** *** 357,361 **** # to the center of the page! my $pad = $self->render_image_pad(); ! my $pad_url = $self->generate_image($pad); my $pad_img = img({-src => $pad_url, -width => $pad->width, --- 357,361 ---- # to the center of the page! my $pad = $self->render_image_pad(); ! my $pad_url = $self->source->generate_image($pad); my $pad_img = img({-src => $pad_url, -width => $pad->width, *************** *** 645,649 **** eval { $panel->finished }; # should quash memory leaks when used in conjunction with bioperl 1.4 ! my $url = $self->generate_image($gd); my $height = $y2 - $y1 + 1; --- 645,649 ---- eval { $panel->finished }; # should quash memory leaks when used in conjunction with bioperl 1.4 ! my $url = $self->source->generate_image($gd); my $height = $y2 - $y1 + 1; *************** *** 1791,1795 **** }; } - sub hilite_fill { --- 1791,1794 ---- *************** *** 1805,1850 **** } - =head2 generate_image - - ($url,$path) = $render_panels->generate_image($gd) - - Given a GD::Image object, this method calls its png() or gif() methods - (depending on GD version), stores the output into the temporary - directory given by the "tmpimages" option in the configuration file, - and returns a two element list consisting of the URL to the image and - the physical path of the image. - - =cut - - sub generate_image { - my $self = shift; - my $image = shift; - - my $source = $self->source; - - my $extension = $image->can('png') ? 'png' : 'gif'; - my $data = $image->can('png') ? $image->png : $image->gif; - my $signature = md5_hex($data); - - warn ((CGI::param('ref')||'') . ':' . - (CGI::param('start')||'') . '..'. - (CGI::param('stop')||'') - , - " sig $signature\n") if DEBUG; - - # untaint signature for use in open - $signature =~ /^([0-9A-Fa-f]+)$/g or return; - $signature = $1; - - my ($uri,$path) = $source->globals->tmpdir($source->name.'/img'); - my $url = sprintf("%s/%s.%s",$uri,$signature,$extension); - my $imagefile = sprintf("%s/%s.%s",$path,$signature,$extension); - open (F,">$imagefile") || die("Can't open image file $imagefile for writing: $!\n"); - binmode(F); - print F $data; - close F; - return $url; - } - 1; --- 1804,1807 ---- Index: DataSource.pm =================================================================== RCS file: /cvsroot/gmod/Generic-Genome-Browser/libnew/Bio/Graphics/Browser/DataSource.pm,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** DataSource.pm 14 Aug 2008 18:28:49 -0000 1.22 --- DataSource.pm 20 Aug 2008 00:12:10 -0000 1.23 *************** *** 10,13 **** --- 10,14 ---- use File::Path 'mkpath'; use Data::Dumper 'Dumper'; + use Digest::MD5 'md5_hex'; use Carp 'croak'; use Socket 'AF_INET','inet_aton'; # for inet_aton() call *************** *** 773,776 **** --- 774,811 ---- } + =head2 generate_image + + ($url,$path) = generate_image($gd); + + Given a GD::Image object, this method calls its png() or gif() methods + (depending on GD version), stores the output into the temporary + directory given by the "tmpimages" option in the configuration file, + and returns a two element list consisting of the URL to the image and + the physical path of the image. + + =cut + + sub generate_image { + my $self = shift; + my $image = shift; + + my $extension = $image->can('png') ? 'png' : 'gif'; + my $data = $image->can('png') ? $image->png : $image->gif; + my $signature = md5_hex($data); + + # untaint signature for use in open + $signature =~ /^([0-9A-Fa-f]+)$/g or return; + $signature = $1; + + my ($uri,$path) = $self->globals->tmpdir($self->name.'/img'); + my $url = sprintf("%s/%s.%s",$uri,$signature,$extension); + my $imagefile = sprintf("%s/%s.%s",$path,$signature,$extension); + open (my $f,'>',$imagefile) || die("Can't open image file $imagefile for writing: $!\n"); + binmode($f); + print $f $data; + close $f; + return $url; + } + 1; |