exif数据,php上传图片轮换

时间:2017-05-05 03:07:44

标签: php upload rotation exif

我很难实现php代码,确保所有上传的照片在上传后都能正确定位。

这是我的upload.php函数......

function process_image_upload($field)
{

if(!isset($_FILES[$field]['tmp_name']) || ! $_FILES[$field]['name'])
{
    return 'empty';
}

$temp_image_path = $_FILES[$field]['tmp_name'];
$temp_image_name = $_FILES[$field]['name'];
list($iwidth, $iheight, $temp_image_type) = 
getimagesize($temp_image_path);
if ($temp_image_type === NULL) {
    return false;
}
elseif( $iwidth < 400 )
    return 'size';
switch ($temp_image_type) {
    case IMAGETYPE_GIF:
        break;
    case IMAGETYPE_JPEG:
        break;
    case IMAGETYPE_PNG:
        break;
    default:
        return false;
}

$uploaded_image_path = UPLOADED_IMAGE_DESTINATION . $temp_image_name;
move_uploaded_file($temp_image_path, $uploaded_image_path);
$thumbnail_image_path = THUMBNAIL_IMAGE_DESTINATION . 
preg_replace('{\\.[^\\.]+$}', '.jpg', $temp_image_name);

$main_image_path = MAIN_IMAGE_DESTINATION . preg_replace('{\\.[^\\.]+$}', '.jpg', $temp_image_name);

$result = 

 generate_image_thumbnail($uploaded_image_path,
$thumbnail_image_path,150,150
);  if( $result )
    $result = 
generate_image_thumbnail($uploaded_image_path,$main_image_path,400,400, 
true);
return $result ? array($uploaded_image_path, $thumbnail_image_path) : 
false;
}
if(isset($_POST['upload'])):
$result = process_image_upload('image');
if ($result === false) {
update_option('meme_message','<div class="error" style="margin-
left:0;"><p>An error occurred while processing upload</p></div>');
} else if( $result === 'empty')
{
        update_option('meme_message','<div class="error" style="margin-
 left:0;"><p>Please select a Image file</p></div>');

}
elseif( $result === 'size')
{
update_option('meme_message','<div class="error" style="margin-
left:0;"><p>Image width must be greater than 400px;</p></div>');
}
else {
    update_option('meme_message','<div style="margin-left:0;" 
class="updated"><p>Image uploaded successfully</p></div>');
    $guploaderr = false;
    $count      = intval(get_option('meme_image_count'));
    update_option('meme_image_count', $count+1);
}
endif;

这里有一些我知道会旋转的PHP ......但我不知道如何实现。

<?php
$image = 
imagecreatefromstring(file_get_contents($_FILES['image_upload']
['tmp_name']));
$exif = exif_read_data($_FILES['image_upload']['tmp_name']);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
    case 8:
        $image = imagerotate($image,90,0);
        break;
    case 3:
        $image = imagerotate($image,180,0);
        break;
    case 6:
        $image = imagerotate($image,-90,0);
        break;
    }
}
// $image now contains a resource with the image oriented correctly
?>

0 个答案:

没有答案