使用 Perl 创建 png 图像的缩略图 Image::Magic
create thumbnail of png image using Perl Image::Magic
我正在使用下面的代码从大图像中获取缩略图。
我正在为此使用图像魔术。
$thumbnail_width = 100;
$thumbnail_height = 60;
open my $file, "data2";
$image_data = <$file>;
create_thumbnail($image_data);
sub create_thumbnail {
my ($image_data, $garb) = @_;
use Image::Magick;
#my $image = Image::Magick->new(magick=>'jpg');
#my $image = Image::Magick->new(magick=>'png');
#print "===>$image_data<===";
my $image = Image::Magick->new;
$error = $image->BlobToImage($image_data);
print "1--".$error;
$error = $image->SetAttribute(quality => 80);
print "2--".$error;
$error = $image->SetAttribute(compression => 'JPEG');
print "3--".$error;
$error = $image->Thumbnail(width => $thumbnail_width, height => $thumbnail_height);
print "4--".$error;
my $thumbnail_data = $image->ImageToBlob();
print "Content-type: image/jpeg\nContent-length: " . length($thumbnail_data) . "\n\n";
print STDERR "===>$thumbnail_data<=====";
#print $thumbnail_data;
}
我遇到了以下错误。
1--异常 425:图像大小为负或零 ' @ error/gif.c/ReadGIFImage/13692--3--4--Exception 410: no images defined
Thumbnail' @ error/Magick.xs/XS_Image__Magick_Mogrify/7403Content-type: image/jpeg
内容长度:
我要创建缩略图的图像类型为 PNG.I 我正在使用 ImageMagick-6.9.1-2。
您只读取 \n
第一次出现之前的输入,因此您将 incomplete/corrupt 数据传递给 create_thumbnail
函数。
将文件句柄的全部内容加载到标量变量中的规范方法如下所示:
open my $file, "data2";
$image_data = do { local $/; <$file> };
但如果 local $/
看起来太深奥,这些是等价的:
$image_data = join '', <$file>;
use File::Slurp;
$image_data = read_file("data2"); # don't need $file handle
我正在使用下面的代码从大图像中获取缩略图。
我正在为此使用图像魔术。
$thumbnail_width = 100;
$thumbnail_height = 60;
open my $file, "data2";
$image_data = <$file>;
create_thumbnail($image_data);
sub create_thumbnail {
my ($image_data, $garb) = @_;
use Image::Magick;
#my $image = Image::Magick->new(magick=>'jpg');
#my $image = Image::Magick->new(magick=>'png');
#print "===>$image_data<===";
my $image = Image::Magick->new;
$error = $image->BlobToImage($image_data);
print "1--".$error;
$error = $image->SetAttribute(quality => 80);
print "2--".$error;
$error = $image->SetAttribute(compression => 'JPEG');
print "3--".$error;
$error = $image->Thumbnail(width => $thumbnail_width, height => $thumbnail_height);
print "4--".$error;
my $thumbnail_data = $image->ImageToBlob();
print "Content-type: image/jpeg\nContent-length: " . length($thumbnail_data) . "\n\n";
print STDERR "===>$thumbnail_data<=====";
#print $thumbnail_data;
}
我遇到了以下错误。
1--异常 425:图像大小为负或零 ' @ error/gif.c/ReadGIFImage/13692--3--4--Exception 410: no images defined
Thumbnail' @ error/Magick.xs/XS_Image__Magick_Mogrify/7403Content-type: image/jpeg
内容长度:
我要创建缩略图的图像类型为 PNG.I 我正在使用 ImageMagick-6.9.1-2。
您只读取 \n
第一次出现之前的输入,因此您将 incomplete/corrupt 数据传递给 create_thumbnail
函数。
将文件句柄的全部内容加载到标量变量中的规范方法如下所示:
open my $file, "data2";
$image_data = do { local $/; <$file> };
但如果 local $/
看起来太深奥,这些是等价的:
$image_data = join '', <$file>;
use File::Slurp;
$image_data = read_file("data2"); # don't need $file handle