X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FHelper%2FThumbnailCreator.pm;fp=SL%2FController%2FHelper%2FThumbnailCreator.pm;h=6f3099871425bf6d9fa5f3de36a9d61569da3d82;hb=60566f88588ad476cfe20195ef91b4e2ff9586b6;hp=072d89d76ce0e1420cac21ea98d0ff787edd8b12;hpb=6dbfb1669f2c3391b4323f0b606439f0c6148b47;p=kivitendo-erp.git diff --git a/SL/Controller/Helper/ThumbnailCreator.pm b/SL/Controller/Helper/ThumbnailCreator.pm index 072d89d76..6f3099871 100644 --- a/SL/Controller/Helper/ThumbnailCreator.pm +++ b/SL/Controller/Helper/ThumbnailCreator.pm @@ -15,7 +15,6 @@ require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(file_create_thumbnail file_update_thumbnail file_probe_type file_probe_image_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' }, @@ -24,10 +23,9 @@ our %supported_mime_types = ( ); sub file_create_thumbnail { - my ($self) = @_; - croak "No picture set yet" if !$self->file_content; - - my $image = GD::Image->new($self->file_content); + my ($thumb) = @_; + croak "No picture set yet" if !$thumb->{content}; + my $image = GD::Image->new($thumb->{content}); my ($width, $height) = $image->getBounds; my $max_dim = 64; my $curr_max = max $width, $height, 1; @@ -38,11 +36,11 @@ sub file_create_thumbnail { $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; + $thumb->{thumbnail_img_content} = $thumbnail->png; + $thumb->{thumbnail_img_content_type} = "image/png"; + $thumb->{thumbnail_img_width} = $new_width; + $thumb->{thumbnail_img_height} = $new_height; + return $thumb; } @@ -66,25 +64,23 @@ sub file_probe_image_type { } 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}); + my ($content) = @_; + return (t8("No file uploaded yet")) if !$content; + my $info = Image::Info::image_info(\$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); + my $thumbnail; + $thumbnail->{file_content_type} = $info->{file_media_type}; + $thumbnail->{file_image_width} = $info->{width}; + $thumbnail->{file_image_height} = $info->{height}; + $thumbnail->{content} = $content; - $self->file_create_thumbnail; + $thumbnail = &file_create_thumbnail($thumbnail); - return (); + return $thumbnail; } sub file_update_type_and_dimensions {