私は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のドキュメントでは、ImageInfoメソッドのスカラー変数としてメモリ内の参照をファイルに渡すことができます。これは上記のとおりです。実行すると
、イメージ:: ExifToolモジュールは、次のことを吐き出す:
Error => Unknown file type
サイドノート:あなたの誤用 '='とそれに対するあなたのコメントが間違っています。 '.'は連結されています。 '。='は連結され、結果を左側の変数に代入します。 'print'文の副作用として' $ file'の値を変更しようと思ったかもしれませんが、私はそれを疑っています。 –
'read'は' FILE'ファイルハンドルの代わりに 'IMAGE'ファイルハンドルを使うべきです。 – hexcoder
編集のためのThx! – Will