IOS拍摄图片上传自动旋转问题
java后端处理
项目中使用了图片上传至腾讯云,图片都可以正常上传,可是发现iOS拍摄的照片会被自动旋转.
出现这种情况的原因:
iPhone对拍摄的照片附加了EXIF信息(如镜头、光圈、快门、焦距、相机拍摄角度等),图片被上传
后自动根据相机拍摄角度做了旋转。
那么解决方案就是根据图像EXIF信息中的相机拍摄角度(Orientation),再旋转回来就OK了。
orientation的几种类型:
Orientation = 1(不翻转)
Orientation = 2 (左右翻转)
Orientation = 3 (180度翻转)
Orientation = 4 (上下翻转)
Orientation = 5 (顺时针翻转90度后,左右翻转)
Orientation = 6 (顺时针翻转90度)
Orientation = 7 (逆时针翻转90度后,左右翻转)
Orientation = 8 (逆时针翻转90度)
PS:一般常用的也就是1,3,6,8,另外几种应该是那种有特效功能的相机拍出的吧。
直接上解决细节吧!
腾讯云图片上传工具类:
import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.exception.CosClientException;
import com.qcloud.cos.exception.CosServiceException;
import com.qcloud.cos.model.GetObjectRequest;
import com.qcloud.cos.model.ObjectMetadata;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.region.Region;
import java.io.File;
import java.net.URL;
import java.util.Date;
import java.util.Random;
public class TencentCOS {
// 此处填写的存储桶名称
private static final String bucketName = “bucketName “;
// secretId 可在腾讯云后台中的API密钥管理中查看
private static final String secretId = “secretId”
// secretKey 可在腾讯云后台中的API密钥管理中查看
private static final Strin