imagecreatefromjpeg
PHPで新しい画像をファイルをURLから作成するとき、以下の関数を使って作成する
拡張子ごとに分かれているので分岐させる必要が有る
もし別の拡張子を扱った場合はエラーが出る。
imagecreatefromjpeg関数を使用してpng画像のインスタンスを作成しようとしたとき、以下のエラーが出た。
imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error:
このように、imagecreatefromjpeg()関数は画像の拡張子がjpegであれば使えるがpngやgifなどのデータは取り扱えない。
自動判別をするためにimagecreatefromstring()を使用する
(以下抜粋) 指定した image から 得られたイメージを表すイメージ ID を返します。もし、PHP が JPEG, PNG, GIF, WBMP, GD2 をサポートするようビルドされている場合、 イメージの種類は自動的に判別されます。
とある。 引数には画像データを含む文字列を入れなければならないので、file_get_contentsを使用して画像を文字列として読み込むようにする
$image_instance = imagecreatefromstring(file_get_contents('sample.png'));