From: Bernd Bleßmann Date: Mon, 15 Feb 2021 14:25:53 +0000 (+0100) Subject: SL/DB/Helper/ThumbnailCreator.pm wird nicht benutzt X-Git-Tag: kivitendo-mebil_0.1-0~9^2~476 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=c235f7be04aeadf4c69612356c0453f11a3ea3b2;p=kivitendo-erp.git SL/DB/Helper/ThumbnailCreator.pm wird nicht benutzt siehe SL/DB/Controller/ThumbnailCreator.pm --- diff --git a/SL/DB/Helper/ThumbnailCreator.pm b/SL/DB/Helper/ThumbnailCreator.pm deleted file mode 100644 index 40d861aea..000000000 --- a/SL/DB/Helper/ThumbnailCreator.pm +++ /dev/null @@ -1,124 +0,0 @@ -package SL::DB::Helper::ThumbnailCreator; - -use strict; - -use parent qw(SL::Controller::Base); - -use SL::Locale::String qw(t8); -use Carp; -use GD; -use Image::Info; -use File::MimeInfo::Magic; -use List::MoreUtils qw(apply); -use List::Util qw(max); -use Rose::DB::Object::Util; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(file_create_thumbnail file_update_thumbnail file_probe_type file_update_type_and_dimensions); - -# TODO PDFs and others like odt,txt,... -our %supported_mime_types = ( - 'image/gif' => { extension => 'gif', convert_to_png => 1, }, - 'image/png' => { extension => 'png' }, - 'image/jpeg' => { extension => 'jpg' }, - 'image/tiff' => { extension => 'tif'}, -); - -sub file_create_thumbnail { - my ($self) = @_; - croak "No picture set yet" if !$self->file_content; - - my $image = GD::Image->new($self->file_content); - my ($width, $height) = $image->getBounds; - my $max_dim = 64; - my $curr_max = max $width, $height, 1; - my $factor = $curr_max <= $max_dim ? 1 : $curr_max / $max_dim; - my $new_width = int($width / $factor + 0.5); - my $new_height = int($height / $factor + 0.5); - my $thumbnail = GD::Image->new($new_width, $new_height); - - $thumbnail->copyResized($image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); - - $self->thumbnail_img_content($thumbnail->png); - $self->thumbnail_img_content_type('image/png'); - $self->thumbnail_img_width($new_width); - $self->thumbnail_img_height($new_height); - return 1; - -} - -sub file_update_thumbnail { - my ($self) = @_; - - return 1 if !$self->file_content || !$self->file_content_type || !Rose::DB::Object::Util::get_column_value_modified($self, 'file_content'); - $self->file_create_thumbnail; - return 1; -} - -sub file_probe_type { - my ($self) = @_; - - return (t8("No file uploaded yet")) if !$self->file_content; - my $mime_type = File::MimeInfo::Magic::magic($self->file_content); - - my $info = Image::Info::image_info(\$self->{file_content}); - if (!$info || $info->{error} || !$info->{file_media_type} || !$supported_mime_types{ $info->{file_media_type} }) { - $::lxdebug->warn("Image::Info error: " . $info->{error}) if $info && $info->{error}; - return (t8('Unsupported image type (supported types: #1)', join(' ', sort keys %supported_mime_types))); - } - - $self->file_content_type($info->{file_media_type}); - $self->files_img_width($info->{width}); - $self->files_img_height($info->{height}); - $self->files_mtime(DateTime->now_local); - - $self->file_create_thumbnail; - - return (); -} - -sub file_update_type_and_dimensions { - my ($self) = @_; - - return () if !$self->file_content; - return () if $self->file_content_type && $self->files_img_width && $self->files_img_height && !Rose::DB::Object::Util::get_column_value_modified($self, 'file_content'); - - my @errors = $self->file_probe_type; - return @errors if @errors; - - my $info = $supported_mime_types{ $self->file_content_type }; - if ($info->{convert_to_png}) { - $self->file_content(GD::Image->new($self->file_content)->png); - $self->file_content_type('image/png'); - $self->filename(apply { s/\.[^\.]+$//; $_ .= '.png'; } $self->filename); - } - return (); -} - -1; -__END__ - -=pod - -=encoding utf8 - -=head1 NAME - -SL::DB::Helper::ThumbnailCreator - DatabaseClass Helper for Fileuploads - -=head1 SYNOPSIS - -use SL::DB::Helper::ThumbnailCreator; - -# synopsis... - -=head1 DESCRIPTION - -# longer description.. - -=head1 AUTHOR - -Werner Hahn Ewh@futureworldsearch.netE - -=cut