Я сделал бы различие между HTML для общедоступных веб-сайтов (таблицы no-no-no, отделения yes-yes-yes) и HTML для полуобщедоступных или частных веб-приложений, где я склонен предпочитать таблицы даже для макета страницы.
большинством значительных причин, почему "Таблицы плохи", обычно является проблема только для общедоступных веб-сайтов, но не большой части проблемы с веб-приложениями. Если я могу получить то же расположение и иметь более последовательный взгляд через браузеры при помощи ТАБЛИЦЫ, чем сложный CSS+DIV, то я обычно иду вперед и утверждаю ТАБЛИЦУ.
> cat im.pl
use Image::Magick;
my $image = Image::Magick->new();
$image->Read('/home/rjp/2009-02-18/DSC00343.JPG');
my $a = $image->Get('format', '%[EXIF:*]'); # two arguments
my @exif = split(/[\r\n]/, $a);
print join("\n", @exif);
> perl im.pl
exif:ColorSpace=1
exif:ComponentsConfiguration=...
exif:Compression=6
exif:CustomRendered=0
exif:DateTime=2009:02:13 16:18:15
exif:DateTimeDigitized=2009:02:13 16:18:15
...
Кажется, это работает.
Версия: ImageMagick 6.3.7 06.04.09 Q16 http://www.imagemagick.org
Я настоятельно рекомендую вам использовать ExifTool Фила Харви. Он исчерпывающий и хорошо задокументирован. Кроме того, он не считывает все изображение в память, и, согласно документации, вы можете получить информацию Exif из изображения, просто передав ему дескриптор файла в открытый файл изображения. Так что не стоит тратить много памяти.
Edit: @rjp показал, как получить доступ ко всей информации, а не к отдельным тегам. Вот как поместить данные в хэш:
#!/usr/bin/perl
use strict;
use warnings;
use Image::Magick;
my $image = Image::Magick->new;
$image->read('test.jpg');
my %exif = map { s/\s+\z//; $_ }
map { split /=/, $_ }
split /exif:/, $image->Get('format', '%[EXIF:*]');
use Data::Dumper;
print Dumper \%exif;