diff options
Diffstat (limited to 'extensions/BmpConvert/Extension.pm')
-rw-r--r-- | extensions/BmpConvert/Extension.pm | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/extensions/BmpConvert/Extension.pm b/extensions/BmpConvert/Extension.pm index b8201f106..d9e3d0ef4 100644 --- a/extensions/BmpConvert/Extension.pm +++ b/extensions/BmpConvert/Extension.pm @@ -18,29 +18,30 @@ use Image::Magick; our $VERSION = '1.0'; sub attachment_process_data { - my ($self, $args) = @_; - return unless $args->{attributes}->{mimetype} eq 'image/bmp'; - - my $data = ${$args->{data}}; - my $img = Image::Magick->new(magick => 'bmp'); - - # $data is a filehandle. - if (ref $data) { - $img->Read(file => \*$data); - $img->set(magick => 'png'); - $img->Write(file => \*$data); - } - # $data is a blob. - else { - $img->BlobToImage($data); - $img->set(magick => 'png'); - $data = $img->ImageToBlob(); - } - undef $img; - - ${$args->{data}} = $data; - $args->{attributes}->{mimetype} = 'image/png'; - $args->{attributes}->{filename} =~ s/^(.+)\.bmp$/$1.png/i; + my ($self, $args) = @_; + return unless $args->{attributes}->{mimetype} eq 'image/bmp'; + + my $data = ${$args->{data}}; + my $img = Image::Magick->new(magick => 'bmp'); + + # $data is a filehandle. + if (ref $data) { + $img->Read(file => \*$data); + $img->set(magick => 'png'); + $img->Write(file => \*$data); + } + + # $data is a blob. + else { + $img->BlobToImage($data); + $img->set(magick => 'png'); + $data = $img->ImageToBlob(); + } + undef $img; + + ${$args->{data}} = $data; + $args->{attributes}->{mimetype} = 'image/png'; + $args->{attributes}->{filename} =~ s/^(.+)\.bmp$/$1.png/i; } - __PACKAGE__->NAME; +__PACKAGE__->NAME; |