forms - 如何使用 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);
解决方案
感谢 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);
推荐阅读
- c# - 我应该使用 OnAfterRenderAsync 而不是 OnInitializedAsync 吗?
- html - 模态文本区域编辑光标到最后一行
- sql - oracle SQL中如何替换日期参数
- html - 元素的响应性问题
- android - 捕获异常时显示特定布局
- typescript - 打字稿:在不导入的情况下将 @types 用于 jsrsasign
- node.js - 当 npm 模块显示 cb.apply() 不是函数时,如何下载它?
- gtk4 - GTK4:图片不缩小
- javascript - Javascript,如何将此数组转换为字典?
- optimization - 二次约束的线性化