【发布时间】:2017-11-17 21:39:01
【问题描述】:
我有一些代码应该使用 libpng 的 Perl 绑定来修改 PNG 文件的 tEXt 或 zTXt 块。
代码:
use strict;
use warnings;
use Data::Dumper qw(Dumper);
use Image::PNG::Libpng qw(read_png_file write_png_file) ;
my $lpng = read_png_file ("testimg.png");
my @cmdAr = ();
for(my $i=0; $i<10; ++$i){
push(@cmdAr, {compression => Image::PNG::Libpng::PNG_TEXT_COMPRESSION_zTXt ,
key => sprintf("par_%02i",$i),
text => sprintf("%06i", $i*$i)
}
);
}
print STDERR Dumper(\@cmdAr);
$lpng->set_text (\@cmdAr);
$lpng->write_png_file ("testimg2.png");
但代码在写入函数时失败:
libpng 错误:调用 NULL 写入函数
关于如何解决这个问题的任何提示?文件存在,进程也有写权限。
我的 Perl 版本(最新的草莓 Perl):
这是 perl 5, version 26, subversion 0 (v5.26.0) MSWin32-x86-multi-thread-64int
libpng 模块的版本:
cpan -D 图像::PNG::Libpng
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
【问题讨论】:
-
你有正确版本的 libpng 吗?
-
@simbabque 我有一个与 cpan-package 一起安装的
-
@simbabque png-chunks 被命名为
tEXt和zTXt所以在编辑之前它是正确的 -
哦,对不起。大写字母错别字较多,所以我认为也只是一个错别字。