imagick(ImageMagick)の imagecoloratで色が取れない

 昨日までは正常に色の値が取れていたのに
突然色がRGBで000になった時の対応。

 

こんな感じに書いていました。

昨日までは$r、$g、$bにシッカリと色が取れていたコード

$im_file = new Imagick(“aaaa.jpg”);
$rgb = imagecolorat($im_file,10,10);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

echo var_export($rgb);
var_dump($r, $g, $b);

 

表示結果は

 

何が悪いのかわからないけど、修正はこう

$im_file = imagecreatefromjpeg(“aaaaaa.jpg”);
$rgb = imagecolorat($im_file,1,1);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

echo var_export($rgb);
var_dump($r, $g, $b);

 

jpeg指定で呼んだら直りました。

 

ちなみにサーバーはロリポップです。

 

 

  • imagick(ImageMagick)の imagecoloratの値がおかしい
  • imagecoloratの戻り値がNULLになる
  • imagecoloratが0になる

こういう時には画像に合わせた読み込みをすると良いかと思います。
ウワサだけど透過gifを使ったファイルの場合は
この方法の方が良いらしいです…(未確認ですが)

 

 

 

 

 

 

コメントを残す