ImageMagickのバージョンナンバーの謎
php peclライブラリのimagickを使用していて疑問に思ったこと。
Imagick::getVersion関数を使うと配列が以下のような配列が返ってくる。
Array ( [versionNumber] => 1620 [versionString] => ImageMagick 6.5.4-7 2011-06-13 Q16 OpenMP http://www.imagemagick.org )
versionStringはわかるのだが、versionNumberって何の数字だ???
imagickのソースを読むと
MagickGetVersion()というC関数を読んでいる。
これはImageMagickのAPI関数のようだ。
今度はImageMagickのソースを読む。
version.h
MagickExport const char *GetMagickVersion(size_t *version)
{
if (version != (size_t *) NULL)
*version=MagickLibVersion;
return(MagickVersion);
}
MagickLibVersionという定数を返しているようだ。
version.h
#define MagickLibVersionText "6.5.4"
#define MagickLibVersion 0x654
バージョン番号の16進数表現なのか。
PHPで実験
$im = new Imagick();
$number = $im->getVersion();
print_r( $number ); echo "
\n";
print base_convert($number['versionNumber'], 10, 16);
- -
Array ( [versionNumber] => 1620 [versionString] => ImageMagick 6.5.4-7 2011-06-13 Q16 OpenMP http://www.imagemagick.org )
654
ってことで基数を16進に変換してやればバージョンチェックできそう。