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関数を読んでいる。
これはImageMagickAPI関数のようだ。

今度は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進に変換してやればバージョンチェックできそう。