我从Perl的Image :: Info :: image_info()得到的所有二进制文件是什么?

时间:2009-05-09 09:10:37

标签: perl image encoding

运行图片的code后,我得到以下输出

[1459]./image_info.pl lah.png 
$VAR1 = {
          'width' => 206,          'file_media_type' => 'image/png',
          'file_ext' => 'png',
          'PNG_Chunks' => [
                            'IHDR',
?V?????O?H??^#?C&?fu?M?5V??m6???M?s',
                            'IEND' 9   :˺??:?E??(;t??[/????o?4?4?O??TܲD
#PJ?EHͨ??ƥ8???#u   ?t??1?I/=?!w"???)?,??????X?|?{                                              M?N??A?  V``?&?
{8.?"???I)?W?_??|k?.c??l??s?8?~^Z??????_;?,,+,/?4~]ů?ZìU?+???i?s`C}??/?_??>?d~?lrn?n^???2???z?-???B??n?D;??aXHoeh?3???
DA5?N?Aw??? ???J?-????P?> 'RGB',
C?~&?1?cd 'heiga~H.`ha162,         H2?I???P?p?HsZ?&?P? Y`??;?q4Kov??3?Z???L???? ?F??&???aq?H???????"Ri?F? ??ٵ???L  B??r??H%??@??٩qiLJ?pres??on' => 'Deflate',
        ??/?Z?w,?k???g?=> '2835 dpm',
          'Compression' ? ((~??_^A ?c?vV??w????m,7????Eb???0J5?? ??? ????9????:?,24m[1460]  

我不明白文件的最后一位。

如何将编码更改为可读?

3 个答案:

答案 0 :(得分:4)

Perl Image::Info模块根本不应显示所有编码数据。我自己对该模块的测试从未这样做过,例如:

$VAR1 = {
          'width' => 58,
          'file_media_type' => 'image/png',
          'file_ext' => 'png',
          'PNG_Chunks' => [
                            'IHDR',
                            'IDAT',
                            'IEND'
                          ],
          'PNG_Filter' => 'Adaptive',
          'color_type' => 'Gray',
          'height' => 56,
          'SampleFormat' => 'U8',
          'Compression' => 'Deflate',
          'resolution' => '1/1'
        };

在另一个PNG文件上尝试,看起来它可能已损坏。

答案 1 :(得分:1)

您正在将二进制块显示为文本。在任何编码中都不会有可读性。

答案 2 :(得分:0)

将脚本的输出重定向到文件:

./image_info.pl lah.png >log.txt 2>&1

然后在您喜欢的GUI文本编辑器(例如kate,gedit,notepad ++)中打开log.txt,在打开的对话框中指定ISO-8859-1或UTF-8。尝试两种编码。