[Perl] 画像の形式を判別する (PNG/JPEG/BMP/GIF)

判別したい画像のファイル名を指定し、サブルーチン(またはモジュール)”image_format_check(ファイル名)”で呼び出します。

JPEGであればjpg、PNGであればpng、BMPであればbmp、GIFであればgifの値を返します。判別不能の場合はbinの値を返します。

#———- スクリプト始まり

#!/usr/bin/perl

use CGI qw(:standard);
use strict;

sub image_format_check {

#———- ローカル変数の宣言
my ($checkdata, $checkb, $checkg);
#———- ローカル変数の宣言 ここまで
#———- パラメータ取り込み ここから
 my $checkfilepath = shift;
#———- パラメータ取り込み ここまで
#———- データ取り込み ここから
 open INcheckformat, “$checkfilepath”;
  binmode INcheckformat;
  read INcheckformat, $checkb, 2; #2バイト読む (jpeg, gif, png)
  seek INcheckformat, 0, 0; #読込位置を先頭に戻す
  read INcheckformat, $checkg, 3 ; #3バイト読む (gif)
 close INcheckformat;
#———- データ取り込み ここまで
#———- 画像の種類の判定 ここから
$checkdata = ‘bin’;
$checkdata = ‘jpg’ if ($checkb eq “\xff\xd8”);
$checkdata = ‘png’ if ($checkb eq “\x89\x50”);
$checkdata = ‘bmp’ if ($checkb eq “\x42\x4D”);
$checkdata = ‘gif’ if ($checkg eq “\x47\x49\x46”);
#———- 画像の種類の判定 ここまで
 return ($checkdata);
}
1;

#———- スクリプト終わり

あわせてどうぞ

[Perl] 移動平均の傾きを一気に計算する

[Perl] 日付から第何何曜日かを計算して取得する

JavascriptとPerlでPCとスマートフォン用のCSSを切り替える

PerlとJavascriptの連携でウェブコンテンツを表示させる方法

キーワード: Perl; 画像の判別

Comments are closed.