Image-Info-1.28.tar.gz
[Image-Info.git] / exifdump
blob65f6bf9735c9fce9cd10be293142e310860e2c63
1 #!/usr/bin/perl -w
3 use lib 'lib';
4 use strict;
5 use Image::Info qw(image_info);
7 my $i=image_info($ARGV[0]);
9 foreach (sort keys %$i) {
10 if ($i->{$_} =~ /[\001-\037\177-\377]/ && !/error/) {
11 printf "%s ->\n" ,$_;
12 hex_print($i->{$_});
13 next;
15 $i->{$_} =~ s/\000//g;
16 printf "%s -> %s\n" ,$_, ref($i->{$_}) ? deref(@{$i->{$_}}) : $i->{$_}
19 sub deref {
20 my @args;
21 if (ref($_[0]) eq 'ARRAY') {
22 foreach my $ref (@_) {
23 push(@args, deref(@{$ref}))
25 } else {
26 @args = @_;
28 '[' . join(',',@args) . ']';
31 sub hex_print {
32 for (my $i=0; $i<length $_[0];$i+=16) {
33 my $ss = substr($_[0],$i,16);
34 printf " %04x: %s ", $i, join(' ',grep !/^$/,split(/(..)/,unpack("H*",$ss)));
35 $ss =~ tr /\000-\037\177-\377/./;
36 print $ss,"\n";