From 6eec197b4ad9d396b6c33c5012155608ae4bd961 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Thu, 13 Aug 2009 21:32:15 +0000 Subject: Bug 480986: The BMP -> PNG conversion tool for new attachments should be an extension - Patch by Frédéric Buclin r/a=mkanat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bmp_convert/code/attachment-process_data.pl | 48 ++++++++++++++++++++++ extensions/bmp_convert/disabled | 0 extensions/bmp_convert/info.pl | 27 ++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 extensions/bmp_convert/code/attachment-process_data.pl create mode 100644 extensions/bmp_convert/disabled create mode 100644 extensions/bmp_convert/info.pl (limited to 'extensions') diff --git a/extensions/bmp_convert/code/attachment-process_data.pl b/extensions/bmp_convert/code/attachment-process_data.pl new file mode 100644 index 000000000..15593cc64 --- /dev/null +++ b/extensions/bmp_convert/code/attachment-process_data.pl @@ -0,0 +1,48 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Frédéric Buclin. +# Portions created by Frédéric Buclin are Copyright (C) 2009 +# Frédéric Buclin. All Rights Reserved. +# +# Contributor(s): Frédéric Buclin + +use strict; + +use Image::Magick; +use Bugzilla; + +my $args = Bugzilla->hook_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(); +} + +${$args->{data}} = $data; +$args->{attributes}->{mimetype} = 'image/png'; +$args->{attributes}->{filename} =~ s/^(.+)\.bmp$/$1.png/i; +undef $img; diff --git a/extensions/bmp_convert/disabled b/extensions/bmp_convert/disabled new file mode 100644 index 000000000..e69de29bb diff --git a/extensions/bmp_convert/info.pl b/extensions/bmp_convert/info.pl new file mode 100644 index 000000000..0d2ad5eb2 --- /dev/null +++ b/extensions/bmp_convert/info.pl @@ -0,0 +1,27 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Frédéric Buclin. +# Portions created by Frédéric Buclin are Copyright (C) 2009 +# Frédéric Buclin. All Rights Reserved. +# +# Contributor(s): Frédéric Buclin + +use strict; + +{ x_name => 'BMP to PNG converter', + version => '1.0', + x_description => 'Automatically converts BMP images to the PNG format', + x_author => 'Greg Hendricks, Frédéric Buclin', +}; -- cgit v1.2.3-24-g4f1b