使用PHP / GD将二进制数据保存为JPEG而不会丢失元数据

时间:2012-05-03 19:51:30

标签: php gd jpeg binary-data

我有一个图像作为二进制数据提供给我的PHP脚本。我想将此图像作为jpeg保存到我服务器上的目录中。我可以使用以下代码完成此任务:

// create image resource from the binary data
$image = imagecreatefromstring($binary_data);

// save the image resource as a jpeg
imagejpeg($image, $directory);

问题在于,当我这样做时,我认为它正在创建一个包含新元数据的新图像。有没有办法可以将二进制数据保存为图像并保留原始二进制数据?

2 个答案:

答案 0 :(得分:0)

为什么不保存$binary_data而不是将其传递给GD file_put_contents($directory, $binary_data)

答案 1 :(得分:0)

使用元数据,您可以通过iptcparse()阅读数据并将其重新嵌入通过iptcembed()

此评论几乎可以完全按照您的要求进行操作 - > http://us3.php.net/manual/en/function.iptcembed.php#85887

对于EXIF数据,您可以通过exif-read-data()读取它,但是没有办法将该数据写回文件,但希望这足以让您开始朝着正确的方向前进。