Restoration
1/30/2017 - 11:32 AM

imagecreatefromjpeg

imagecreatefromjpeg

PHPで新しい画像をファイルをURLから作成するとき、以下の関数を使って作成する

  • imagecreatefromjpeg()
  • imagecreatefrompng()
  • imagecreatefromgif()

拡張子ごとに分かれているので分岐させる必要が有る
もし別の拡張子を扱った場合はエラーが出る。

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'));

imagecreatefromstring