将Safari浏览器与IOS6一起使用,文件上传功能为用户提供了拍摄照片的选项。不幸的是,在拍摄照片时,当照片拇指在浏览器中正确显示时,当您上传到服务器时,文件会旋转90度。这似乎是由于iphone设置的exif数据。我有代码通过在服务时旋转图像来修复方向。但是,我怀疑保存旋转的,正确定向的图像会更好,所以我不再需要担心方向。我的许多其他照片甚至没有exif数据,如果我可以避免它,我不想搞砸它。
任何人都可以建议使用代码保存图像以使其正确定位吗?
以下是旋转图像的代码。下面的代码将显示正确定向的图像,但是,我想要做的是保存它,这样我就可以随时提供它而不用担心方向。
此外,我想在下面的代码中替换impagejpeg
调用,以便任何代码都适用于gif和jpgs。
感谢您提出建议/代码!
PHP
//Here is sample image after uploaded to server and moved to a directory
$target = "pics/779_pic.jpg";
$source = imagecreatefromstring(file_get_contents($target));
$exif = exif_read_data($target);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
$image = imagerotate($source,90,0);
//echo 'It is 8';
break;
case 3:
$image = imagerotate($source,180,0);
//echo 'It is 3';
break;
case 6:
$image = imagerotate($source,-90,0);
//echo 'It is 6';
break;
}
}
// $image now contains a resource with the image oriented correctly
//This is where I want to save resource properly oriented instead of display.
header('Content-type: image/jpg');
imagejpeg($image);
?>
答案 0 :(得分:0)
只有JPEG或TIFF文件可以携带EXIF元数据,因此无需担心使用您的代码处理GIF(或PNG)。
从我认为是官方规范的第9页开始:
压缩文件记录为JPEG(ISO / IEC 10918-1),插入了应用程序标记段(APP1和APP2)。未压缩的文件以TIFF Rev. 6.0格式记录。
http://www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-008-2010_E.pdf
答案 1 :(得分:0)
要保存图像,只需使用相同的函数imagejpeg
和下一个保存图像的参数,例如:
imagejpeg($image, $target, 100);
在这种情况下,您不需要指定标题,因为您没有显示任何内容。