質問: new PelExif(); $pelJpeg->setExif($pelExif); $pelJpeg->saveFile($filepath); } ``` エラー内容 `Call to a member function getBytes() on null` `Error in: lsolesen/pel/src/PelExif.php` ``` /** * Produce bytes for the Exif data. * * @return string bytes representing this object. */ public function getBytes() { return self::EXIF_HEADER . $this->tiff->getBytes(); } ```
回答: エラーの原因は、$pelExif に PelTiffインスタンスが設定されていないためのようです。 調べてみたところ、JpegでExifを扱う場合はそれを載せるTiff構造体が必要なようです。 参考サイト なので、ダミーの PelTiffインスタンスを $pelExif にセットすればうまく行きます。 (example/edit-description.php の 155行目あたりでも同じ処理をしていましたね) ``` //exifが存在する場合上書き if ($pelExif != null) { $pelExif = new PelExif(); $pelJpeg->setExif($pelExif); // 空のTIFF構造を作成 $pelTiff = new PelTiff(); $pelExif->setTiff($pelTiff); $pelJpeg->saveFile($filepath); } ```