gpt4 book ai didi

perl - 如何使用 PerlMagick 提取 EXIF 数据?

转载 作者:行者123 更新时间:2023-12-03 19:08:58 24 4
gpt4 key购买 nike

我目前正在使用 Perl Magick http://www.imagemagick.org/script/perl-magick.php ,Image Magick 的 perl 接口(interface) http://www.imagemagick.org , 处理和转换我们网站用户上传的照片。我还希望能够捕获附加到这些图像的一些 EXIF 数据,并且我已经能够通过以下命令弄清楚如何使用 Image Magick 的命令行界面来执行此操作:

/usr/bin/identify -format "%[EXIF:*]" image.jpg

它返回特定照片的以下 EXIF 信息:
exif:ApertureValue=29/8
exif:ColorSpace=1
exif:CompressedBitsPerPixel=3/1
exif:CustomRendered=0
exif:DateTime=2002:10:08 19:49:52
exif:DateTimeDigitized=2002:09:29 14:03:55
exif:DateTimeOriginal=2002:09:29 14:03:55
exif:DigitalZoomRatio=1/1
exif:ExifImageLength=307
exif:ExifImageWidth=410
exif:ExifOffset=192
exif:ExifVersion=48, 50, 50, 48
exif:ExposureBiasValue=0/1
exif:ExposureMode=0
exif:ExposureTime=1/1000
exif:Flash=24
exif:FlashPixVersion=48, 49, 48, 48
exif:FNumber=7/2
exif:FocalLength=227/32
exif:FocalPlaneResolutionUnit=2
exif:FocalPlaneXResolution=235741/32
exif:FocalPlaneYResolution=286622/39
exif:Make=Canon
exif:MaxApertureValue=12742/4289
exif:MeteringMode=5
exif:Model=Canon PowerShot S30
exif:ResolutionUnit=2
exif:SceneCaptureType=0
exif:SensingMethod=2
exif:ShutterSpeedValue=319/32
exif:Software=Adobe Photoshop 7.0
exif:WhiteBalance=0
exif:XResolution=180/1
exif:YResolution=180/1

我已经尝试了大约 100 种方法来从 Perl Magick 获得相同的结果,但无法弄清楚如何传递我在命令行上使用的相同参数以使其正常工作。以下是我尝试过的几种变体,但似乎都没有奏效:
use Image::Magick;
my $image = Image::Magick->new;
my $exif = $image->Identify('image.jpg');
print $exif;

$image->Read('image.jpg');
$exif = $image->Get('format "%[EXIF:*]"');
print $exif;

我知道还有其他方法可以从 perl 中的图像文件中提取 EXIF 数据,但是由于我们已经加载了 Perl Magick 模块,所以我不想通过加载额外的模块来浪费更多的内存。我希望有人已经在他们的网站上进行了这项工作,并且可以分享解决方案。在此先感谢您的帮助!

最佳答案

> 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

关于perl - 如何使用 PerlMagick 提取 EXIF 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1708417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com