我有很少的Perl經驗。如何使用Perl以字節數組的形式讀取圖像?
我需要讀取一個二進制圖像並將其傳遞給Image::ExifTool
模塊。
這裏是我的代碼:
use Image::ExifTool;
my $exifTool = new Image::ExifTool;
open(IMAGE, $file) || die "Can't Open $file\n";
binmode(IMAGE);
my ($buf, $data, $n);
while (($n = read FILE, $data, 4) != 0) {
$buf .= $data;
}
#'.=' is concat
print $file .= " test";
$infob = $exifTool->ImageInfo(\$buf);
foreach (keys %$infob) {
print "$_ => $$infob{$_}\n";
}
close(IMAGE);
至於我可以告訴大家,我上面的代碼讀取的參考文件,並在字節級追加二進制數據$buf
。
根據ExifTool文檔,您可以將內存中的引用作爲標量var傳遞給ImageInfo方法 - 這是上面完成的。
執行時,圖像:: ExifTool模塊吐出來的是以下幾點:
Error => Unknown file type
邊注:您的誤用'='和你對此有何評論是錯誤的。 '.'是連接的。 '。='連接並將結果分配給左側的變量。你可能打算改變'$ file'的值作爲'print'語句的一個副作用,但是我懷疑它。 –
你的'read'應該使用'IMAGE'文件句柄來代替'FILE'文件句柄。 – hexcoder
Thx編輯! – Will