【发布时间】:2014-01-10 02:20:30
【问题描述】:
我想知道是否有一种方法可以将原始图像的 exif 数据保留在由 imagecopyresampled 函数创建的图像中。我的代码:
$randomName = Functions::generate_random_string(10);
$img = imagecreatefromjpeg($_FILES["file"]["tmp_name"]);
$imageSize = getimagesize($_FILES["file"]["tmp_name"]);
$ratio = 1 / ($imageSize[0] / $imageSize[1]);
$newWidth = 2560;
$newHeight = round($newWidth * $ratio);
$tmp_img = imagecreatetruecolor( $newWidth, $newHeight );
imagecopyresampled( $tmp_img, $img, 0, 0, 0, 0, $newWidth, $newHeight, $imageSize[0], $imageSize[1] );
工作正常,但在创建的图像中没有 exif 数据。
【问题讨论】:
-
没有。 EXIF 数据是嵌入在 JPEG 的注释字段中的结构化数据。您的新图像是全新且独立的 GD 图像,不会与从原始照片创建的 GD 图像共享任何内容。您必须从原始文件中提取 JPG 注释字段并将其应用于新文件,但这超出了 GD 的权限