首页 > 解决方案 > 如何使用 Perl 将图像从表单直接加载到 ImageMagick

问题描述

目前我正在使用以下代码允许用户通过 html 表单上传图像。它创建了图像的副本,然后我将其读入 ImageMagick。但当然,最好将表单中的数据直接读取到 ImageMagick 对象中。但我一直没能做到这一点。

use Image::Magick;
use MIME::Base64;
$arg = new CGI;
$fetch_photo = param('fileuploadphoto');
($data, $base64) = split /,/, $fetch_photo;
($type) = $data =~ m!data:image/(\w+);base64!;
$decoded = MIME::Base64::decode_base64($base64);
$filename = 'test.jpg';
open(my $file, '>', "$filename") or die "Error cannot open file: $file"; 
binmode $file;
print $file $decoded;
close($file);
$image = Image::Magick->new;
$image->Read($filename);

标签: formsperluploadimagemagick

解决方案


感谢 Håkon Hægland 的回答。这完美地工作。

use Image::Magick;
use MIME::Base64;
$fetch_photo = param('fileuploadphoto');
($data, $base64) = split /,/, $fetch_photo;
$decoded = MIME::Base64::decode_base64($base64);
$image = Image::Magick->new;
$image->Read(blob => $decoded);

推荐阅读