#!/usr/bin/perl -w use strict; #### use warnings; #### my $data = get_file($jpg); my @res = sizeJPG($data); print "$jpg width $res[0] height $res[1]\n"; #### my $data = get_file($jpg); my ($h,$v) = sizeJPG($data); print "$jpg width $h height $v\n"; #### sub sizeJPG { return unless $_[0]; my ( $width, $height ); ( $height, $width ) = unpack( "nn", $1 ) if $_[0] =~ /\xFF\xC0...(....)/; return ( $width, $height ); } #### local $_=shift; #### my ($width,$height)=unpack "nn", (/\xFF\xC0...(....)/)[0]; #### my ($width,$height)=unpack "nn", /\xFF\xC0...(....)/ ? $1 : ''; # or "\0" x 4, maybe? #### sub get_file { open FILE, $_[0] or die $!; binmode FILE; local $/; my $data = ; close FILE; return $data; } #### sub get_file { local $/; open my $fh, '<:raw', shift or die $!; <$fh>; }