Perl 图像::PNG::Libpng:“;libpng错误:调用空写函数";
我有一些代码可以使用libpng的Perl绑定修改PNG文件的文本或ztext块 代码:Perl 图像::PNG::Libpng:“;libpng错误:调用空写函数";,perl,libpng,Perl,Libpng,我有一些代码可以使用libpng的Perl绑定修改PNG文件的文本或ztext块 代码: 模块的作者向我介绍了以下功能文档: 也就是说: $png必须是“create\u write\u struct”创建的对象,因此 “read_png_file”后面的调用不起作用 $png->copy\u png可用于创建可写入的结构 所以插入一个$lpng=$lpng->copy_png()会导致预期的行为 完整(并清洁)代码以供参考: use strict; use warnings; use Imag
模块的作者向我介绍了以下功能文档: 也就是说: $png必须是“create\u write\u struct”创建的对象,因此 “read_png_file”后面的调用不起作用
$png->copy\u png
可用于创建可写入的结构
所以插入一个$lpng=$lpng->copy_png()调用set_text
前的code>会导致预期的行为
完整(并清洁)代码以供参考:
use strict;
use warnings;
use Image::PNG::Libpng qw(read_png_file write_png_file) ;
my @txts = ({compression => Image::PNG::Libpng::PNG_TEXT_COMPRESSION_zTXt,
key => "myImportentTextData",
text => "fooBar"
});
my $png = read_png_file ("testimg.png");
$png = $png->copy_png(); #< this is important!
$png->set_text (\@txts);
$png->write_png_file ("testimg2.png");
使用严格;
使用警告;
使用Image::PNG::Libpng qw(读PNG\u文件写PNG\u文件);
my@txts=({compression=>Image::PNG::Libpng::PNG\u TEXT\u compression\u zTXt,
key=>“myImportentTextData”,
text=>“fooBar”
});
my$png=read_png_文件(“testimg.png”);
$png=$png->copy_png();#<这很重要!
$png->set_text(\@txts);
$png->write_png_文件(“testimg2.png”);
您有libpng的正确版本吗?@simbabque我有一个与cpan一起安装的版本-package@simbabquepng块被命名为tEXt
和ztext
,因此在编辑之前它是正确的哦,很抱歉。有更多的大写字母拼写错误,所以我认为其中一个也是一个拼写错误。
CPAN: CPAN::SQLite loaded ok (v0.211)
Database was generated on Thu, 15 Jun 2017 10:43:51 GMT
Image::PNG::Libpng
-------------------------------------------------------------------------
CPAN: Module::CoreList loaded ok (v5.20170530)
(no description)
B/BK/BKB/Image-PNG-Libpng-0.43.tar.gz
C:\strawberry-perl\perl\site\lib\Image\PNG\Libpng.pm
Installed: 0.43
CPAN: 0.43 up to date
Ben Bullock (BKB)
bkb@cpan.org
use strict;
use warnings;
use Image::PNG::Libpng qw(read_png_file write_png_file) ;
my @txts = ({compression => Image::PNG::Libpng::PNG_TEXT_COMPRESSION_zTXt,
key => "myImportentTextData",
text => "fooBar"
});
my $png = read_png_file ("testimg.png");
$png = $png->copy_png(); #< this is important!
$png->set_text (\@txts);
$png->write_png_file ("testimg2.png");