7 my $file = shift or die;
9 open my $in_fh, '<', $file or die;
13 die unless $type eq 'SIMcache';
21 printf "Comment: %s\n", $1;
23 elsif (/^Dimensions=\[(\d+) x (\d+)\]$/)
25 printf "Original image dimensions: %d×%d\n", $1, $2;
29 printf "Date (used for pan-view): %s\n", $1;
31 elsif (/^Checksum=(.*)/)
33 printf "Checksum (never seen): %s\n", $1;
35 elsif (/^MD5sum=\[(.*)\]$/)
37 printf "MD5 sum: %s\n", $1;
39 elsif ($raw =~ /^SimilarityGrid\[(\d+) x (\d+)\]=(.*)$/s)
41 printf "Similarity image %d×%d\n", $1, $2;
42 if ($1 != 32 or $2 != 32)
44 print "Warning, similarity data are not size 32×32!\n";
47 my $simn = $1 * $2 * 3;
50 $simdata = substr($simdata, 0, -1) if length($simdata) == $simn + 1; # In case all fits to one line
52 if (length($simdata) < $simn)
54 read $in_fh, $simdata, $simn - length($simdata), length($simdata) or die;
56 read $in_fh, $dummy, 1 or die;
59 printf "Warning, similarity data is not %d bytes", $simn unless length($simdata) == $simn;
60 } ## end elsif (/^SimilarityGrid\[(\d+)...
64 $field = $1 if /^(.*)=/;
66 printf "Unknown Field '$field'\n";
67 } ## end elsif (/^SimilarityGrid\[(\d+)...
68 } ## end while (<$in_fh>)