多くのプロセスの後に imagecreatetruecolor から作成されたリソース オブジェクト (画像) があります。
$image = imagecreatetruecolor($dst_width, $dst_height);
最後のステップは、iptc タグをイメージに追加することです。
iptc タグを追加するために、php には iptcembed と呼ばれるネイティブ関数があります。
iptcembed ( string $iptcdata , string $jpeg_file_name [, int $spool ] );
問題は次のとおりです。画像をリソースオブジェクトとして保存しています。ただし、iptcembed はファイル パス文字列 $jpeg_file_name として画像を必要とします。
すべての画像について、画像を保存し、iptc タグの iptcembed から読み込む必要があります。
これは大きなパフォーマンスの問題です。汚いコードも。
PHPラッパーがこの問題の解決策になる可能性があると思いますが、それらはパスではないことがわかりました。それらは参照のみです。次のコードはうまくいきませんでした。
$data = null;
ob_start();
imagejpeg($this->image['src_image'], null, $compression);
$data = ob_get_contents();
ob_end_clean();
$img = fopen("php://temp", 'wb+');
fwrite($img, $data);
fclose($img);
$content = iptcembed('', "php://temp");
質問は:メモリからこのイメージパスに到達できる/それを達成するためのより良い方法のトリックはありますか?