我有一个经过大量处理后从 imagecreatetruecolor 创建的资源对象(图像)。
$image = imagecreatetruecolor($dst_width, $dst_height);
最后一步是向图像添加 iptc 标签。
为了添加 iptc 标签,php 具有称为 iptcembed 的本机功能
iptcembed ( string $iptcdata , string $jpeg_file_name [, int $spool ] );
问题是:我将图像存储为资源对象。但是 iptcembed 需要图像作为文件路径字符串 $jpeg_file_name。
对于每个图像,我应该保存图像并从 iptcembed 加载它以获取 iptc 标签。
这是一个很大的性能问题。还有脏代码。
我想 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");
问题是:有什么技巧可以让我从内存中达到这个图像路径/更好的方法来完成它吗?