fireserver has asked for the wisdom of the Perl Monks concerning the following question:

Can perl determine the size of a gif/jpeg/bmp image?? I saw in a reference book a module for doing this but.. I am very, very new to perl and would like to learn how to build a subroutine for my script I'm writing that would determine the size of each picture in a directory of my server.. sorry if this is a newbie question... thanx..

Replies are listed 'Best First'.
Size of an image (Corion)
by Corion (Patriarch) on Aug 10, 2000 at 12:16 UTC

    Your question is a bit unclear. There are two possible questions that come to mind :

    Can Perl determine the file size of a gif/jpeg/bmp image ?

    Yes. There is the -s function, which returns the size of the file. Use it as follows :

    #!/usr/bin/perl -w use strict; my $filename = "test.gif"; my $size = -s $filename; print $size, "\n";

    The other possible question would be :

    Can Perl determine the image dimensions of a gif/jpeg/bmp image ?

    Perl can do this as well. There are a many ways to get the image dimensions, hard ways and easy ways. One particular extensive way, which will help you to find the sizes of many image types is the use of the Image::Magick module (do a web search on Perlmagick to find it). ImageMagick can handle about every common image type you will encounter. It might be overkill for your needs. There is also the Image::Size module, which is more lightweight and will tell you only the dimensions of certain image types. And as a third method, you could always program it yourself, but I recommend having a look at Image::Size first.