前几天我写了一个方法来从在线社区中上传的图片中读出EXIF数据。从图片中获取方向后,我将文件向右旋转。我的剧本只有很短的一部分:
public function rotate($sourceFile, $targetFile, $orienation)
{
switch($orienation){
case 3: $degrees = '180'; break;
case 6: $degrees = '90'; break;
case 8: $degrees = '270'; break;
default: $degrees = '0';
}
$file = $sourceFile . DS . $targetFile;
$rotate = GlobalConfig::BIN_IMAGICK_CONVERT . ' -rotate ' . $degrees . ' ' . $file . ' ' . $file;
exec($rotate);
}
我的脚本正在运行。但我的问题是,其他大家伙喜欢什么 Facebook,处理上传图片的轮换?因为我的解决方案肯定不是最好的。
答案 0 :(得分:1)
我相信更好的方法是使用GD库,代码就像这样
// input
$image = 'myfile.jpg';
//read orientation information from EXIF
$exif = exif_read_data($filename);
$ort = $exif['IFD0']['Orientation'];
//then based on $ort you can determine the rotation degree,
//check the link below for more info
//rotation degree
$degrees = 180;
// create "image object"
$source = imagecreatefromjpeg($image) ;
// rotate
$rotate = imagerotate($source, $degrees, 0) ;
// set the header
header('Content-type: image/jpeg') ;
// output
imagejpeg($rotate) ;
更多信息:Exif Orientation Tag