imagickでjpeg画像は合成できるがpngではできない。 - PHPプロ!Q&A掲示板

4895

  • 募集中!! 0P

imagickでjpeg画像は合成できるがpngではできない。

質問日時 / 2017年12月6日 03:06 (最終編集:12月6日 03:33)    回答数 / 1件

Questioner:  maru1244  このエントリーをはてなブックマークに追加 

キーワード / png    合成    エラー   

こんばんは。

imagickの画像合成をしたいのですが、
jpegではうまくいくのですが、pngではうまくいきません。

ソースコードの以下の段階ですでにエラーが出ます。
※この後に、compositeImageとつづけていきたいのですが。
jpegではうまくいったのですが、どうしてでしょうか?

<?php

try{
$image_path = 'face.png';      //画像へのパス

    header('Content-Type: image/png');      //このデータはpngですよ宣言

    $image = new Imagick($image_path);      //imagick objectを作る
    
    echo $image;     //画像を読み込んで表示する
    
}catch(Exception $e){
    echo $e->getMessage();
}

?>

画面は
corrupt image `/var/tmp/magick-i20FlEAT' @ error/png.c/ReadPNGImage/3067
となります。


ちなみにsitae.jpgというファイルで
'Content-Type: image/jpeg'
でやるとうまく表示されます。

なぜpng画像だとできないのかをよろしくお願いします。


ツリー一覧

┗A01shimixcorrupt image というのですから、画像データが壊れて

回答一覧

並び替え:

A01
answerershimix [12月7日 12:32]

corrupt image というのですから、画像データが壊れているかImagickのサポート外のフォーマットなのでは?

とりあえずはqueryFormatsで確認してください。

http://php.net/manual/ja/imagick.queryformats.php

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)