我甚至很难用perl读取pgm文件。有人知道怎么做吗?(pgm文件是二进制版本,而不是ASCII)
这是我的代码,我试图只读取pgm文件的头部分:
#!/usr/bin/perl
open(TEST, "baboon.pgm") or die "can't open \n";
binmode(TEST);
while(<TEST>){
if($counter<=7){
chomp;
print "$_ ";
$counter++;
}
else{
exit 0;
}
}
close(TEST);发布于 2014-05-10 07:26:52
因为它是二进制的,所以文件中没有换行符。您可以使用slurp模式一次读取整个文件。查看pgm的规范,标题值由空格分隔,其中可以包括空格、换行符和制表符。我在使用regex解析它时遇到了漏洞,而且它似乎工作得很好。
这个例子应该让你开始..。
#!/usr/bin/perl
open(TEST, "baboon.pgm") or die "can't open \n";
binmode(TEST);
$/ = undef; # Slurp mode!
my $data = <TEST>;
close(TEST);
$data =~ /(..)\s([\d]+)\s([\d]+)\s([\d]+)/;
print "magic is $1\n";
print "width is $2\n";
print "heigh is $3\n";
print "maxval is $4\n";https://stackoverflow.com/questions/23578141
复制相似问题