From 9775400b8aad27354df292b9cf30d6e13a4f77ac Mon Sep 17 00:00:00 2001 From: JT Smith Date: Wed, 3 Oct 2007 23:23:44 +0000 Subject: [PATCH] graphing doesn't work with GraphicsMagick --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Image.pm | 28 ++++++++++++++++++++-------- lib/WebGUI/Image/Graph.pm | 4 ++-- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 7e83f261c..401c7639c 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -3,6 +3,7 @@ complete - Clean up orphaned grouping - fix: purging old asset revisions on large sites never completes + - fix: graphing doesn't work with GraphicsMagick 7.4.8 - fix: Syndicated Content doesn't display all items with multiple feeds in interleaved mode diff --git a/lib/WebGUI/Image.pm b/lib/WebGUI/Image.pm index 4d5c31a3c..8854d27d8 100644 --- a/lib/WebGUI/Image.pm +++ b/lib/WebGUI/Image.pm @@ -4,7 +4,7 @@ use strict; use WebGUI::Image::Palette; use Carp qw(croak); -my $graphicsPackage; +our $graphicsPackage; BEGIN { if (eval { require Graphics::Magick; 1 }) { $graphicsPackage = 'Graphics::Magick'; @@ -264,8 +264,12 @@ sub setImageHeight { my $self = shift; my $height = shift; - #$self->image->set(size => $self->getImageWidth.'x'.$height); - $self->image->Extent(height => $height); + if ($graphicsPackage eq 'Graphics::Magick') { + $self->image->set(size => $self->getImageWidth.'x'.$height); + } + else { + $self->image->Extent(height => $height); + } $self->image->Colorize(fill => $self->getBackgroundColor); $self->{_properties}->{height} = $height; } @@ -285,9 +289,12 @@ Teh width of the image in pixels. sub setImageWidth { my $self = shift; my $width = shift; - - #$self->image->set(size => $width.'x'.$self->getImageHeight); - $self->image->Extent(width => $width); + if ($graphicsPackage eq 'Graphics::Magick') { + $self->image->set(size => $width.'x'.$self->getImageHeight); + } + else { + $self->image->Extent(width => $width); + } $self->image->Colorize(fill => $self->getBackgroundColor); $self->{_properties}->{width} = $width; } @@ -410,8 +417,13 @@ sub text { my $anchorX = $properties{x}; my $anchorY = $properties{y}; - - my ($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance) = $self->image->QueryMultilineFontMetrics(%properties); + my %testProperties = %properties; + delete $testProperties{align}; + delete $testProperties{style}; + delete $testProperties{fill}; + delete $testProperties{alignHorizontal}; + delete $testProperties{alignVertical}; + my ($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance) = $self->image->QueryFontMetrics(%testProperties); # Process horizontal alignment if ($properties{alignHorizontal} eq 'center') { diff --git a/lib/WebGUI/Image/Graph.pm b/lib/WebGUI/Image/Graph.pm index 0bd611fb5..2b1fee538 100644 --- a/lib/WebGUI/Image/Graph.pm +++ b/lib/WebGUI/Image/Graph.pm @@ -422,8 +422,8 @@ sub getLabelDimensions { my ($x_ppem, $y_ppem, $ascender, $descender, $width, $height, $max_advance) = $self->image->QueryFontMetrics( font => $self->getLabelFont->getFile, # stroke => $self->getLabelColor, - fill => $self->getLabelColor, - style => 'Normal', +# fill => $self->getLabelColor, +# style => 'Normal', pointsize => $self->getLabelFontSize, %$properties, text => $text,