我已经构建了一个网络应用,可让您从浏览器上传照片。在iOS 6中使用此功能时,即使在上传时以照片的形式拍摄照片,照片也会以横向方式结束。我应该做一些服务器端检查以正确的方式获取图像,还是有某种iOS特定属性/ JavaScript我可以应用于上传表单来解决这个问题?
更新
根据要求,这里是我写的代码。先决条件是我使用PHP和WideImage库(这是一个更大的脚本的片段,所以如果你愿意,你可以使用不同的图像操作)。
// Load Image Into Wide Image
$image=WideImage::load(IMG_UPLOAD_DIR.$result['name']);
$exif=exif_read_data(IMG_UPLOAD_DIR.$result['name']);
$orientation=$exif['Orientation'];
$result['orientation']=$orientation;
// Use Wide Image To Resize Images
$full=$image->resize(IMG_FULL_H,IMG_FULL_H);
$thumb=$image->resize(IMG_THUMB_W,IMG_THUMB_H);
switch($orientation){
case 2:
$full->mirror()->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->mirror()->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 3:
$full->rotate(-180)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(-180)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 4:
$full->rotate(180)->mirror()->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(180)->mirror()->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 5:
$full->rotate(90)->mirror()->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(90)->mirror()->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 6:
$full->rotate(90)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(90)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 7:
$full->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
case 8:
$full->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->rotate(-90)->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
default:
$full->saveToFile(IMG_UPLOAD_DIR.$result['name'], 90);
$thumb->saveToFile(IMG_UPLOAD_DIR.$thumbName, 90);
break;
}
答案 0 :(得分:6)
检查图像exif
元数据,iPhone相机拍摄“旋转”图像。
答案 1 :(得分:2)
你可以试试这个jQuery插件(在这个帖子的底部)
答案 2 :(得分:1)
作为A-Live答案的延伸:
如果你使用ruby,RMagick有一个auto_orient
方法。
来自文档:
根据图像的EXIF方向标记旋转或翻转图像。 请注意,只有现代数码相机的某些型号可以标记图像 与方向。如果图像没有方向标记, 或者图像已经正确定向,然后auto_orient返回 图像的精确副本。
答案 3 :(得分:0)
值得注意的是,通过Cloudinary运行您的图片会对此进行排序。
在通过该服务进行路由之前,我使用iPhone拍摄的照片将在桌面上显示为旋转(看似无理由)。
一旦在Cloudinary网址后面, 任何图像转换功能,图像将以正确的方向返回。
我正在使用他们的付费服务,但似乎他们有免费套餐。