私は現在、Imagemagickを使用して小さな画像処理タイプのプロジェクトを実行することにより、自分自身にPHPを教えようとしています。基本から始めるために、画像を読み込んでPNGに変換する簡単なコードをいくつか作成しました。
ただし、ローカル画像ファイルから読み取ることはできますが、URLでreadImageFile()を呼び出すとクラッシュし、次のエラーが発生するため、URLから画像を読み取ることができません。
致命的なエラー:C:\ xampp \ htdocs \ imagepractice \ imagemagicktest.php:8スタックトレース:#0 C:\ xampp \ htdocs \ imagepractice \ imagemagicktest.php(8 ):Imagick-> readimagefile(Resource id#3)#1 {main}が8行目のC:\ xampp \ htdocs \ imagepractice\imagemagicktest.phpにスローされます
私はこの1時間グーグルを使ってこれを修正する方法を見つけましたが、役に立たなかったのですが、私が見つけた唯一のリードはreadImage関数(Imagick)の使用エラーです。ただし、その問題とは異なり、私はreadImageを完全に使用でき、画像のURLだけでなく、ローカルファイルでもreadImageFileを使用できます。
そこにある唯一のコメントから、それはおそらくWindowsに固有のバグのようですが、誰かがこれを確認/拒否したり、CRTパラメータエラーを修正する方法を提案したりできるのではないかと思いました。
参考までに、私が書いたコードは以下のとおりです。
<?php
$im = new Imagick();
//$im->newPseudoImage(1000, 1000, "magick:rose"); //this works!
//$im->readImage("images\\wheels.jpg"); // this works!
$handle = fopen("http://www.google.com/images/srpr/logo3w.png", "rb");
$im->readImageFile($handle); //this line crashes!
fclose($handle);
$im->setImageFormat("png");
$type = $im->getFormat();
header("Content-type: $type");
echo $im->getImageBlob();
?>
さらに、64ビットのWindows 7を実行しており、XAMPP 1.7.7(PHP 5.3.8を使用)を使用しており、最初にこれらの手順を使用してImagemagick6.6.4をインストールしました。(代わりに6.6.4バージョンをImagemagick 6.6.2に置き換えましたが、ここでのコメント投稿者の提案に従って、何も修正されていません。)