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