Perl 图像::PNG::Libpng:“;libpng错误:调用空写函数";

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

我有一些代码可以使用libpng的Perl绑定修改PNG文件的文本或ztext块

代码:


模块的作者向我介绍了以下功能文档: 也就是说:

$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");