質問: Windows では、imagick::writeImage() は成功しますが失敗し、戻り値がありません。理由はわかりません。ただし、Linux では正常に実行できます。
ただし
$this->image = new Imagick($path);//$path 画像を保存するパス;
...(画像の一部の属性を設定します。コードは省略されています)
方法 1: $ this- >image->writeImage($path); 失敗しました
方法 2: file_put_contents($path, $this->image); 成功しました
Imagick バージョン: ImageMagick-6.8.7-7-Q16-x86- dll .exe
php version: 5.4.16
理由を教えてください
Imagick は PHP と imagick のバージョン間の互換性の問題があります。適切な一致するバージョンを見つけてください。
それだけの場合 方法 1: $this->image->writeImage($path); 失敗
方法 2: file_put_contents($path, $this->image); 成功
それは ImageMagick ではありませんあなたの問題!
1. パスに漢字が含まれている可能性があります
2. パスがスペースを含む長いパス名である可能性があります
3. 相対パスが絶対パスとして扱われている可能性があります
パスを絶対パスに変更すれば完了です