解决iOS拍照上传图片旋转问题

html5应用,可以直接使用file功能调用相机拍照并上传,但是在iOS上有个奇葩的问题,图片不会自动翻转,上传到服务器上的图片可能是倒立的。

解决此问题有2种思路:

1.使用客户端JS检测图片信息,旋转后再上传。此方法实现需消耗客户端资源。

懒得整理js代码了,暂时按下不表。

2.使用服务端PHP检测图片信息,旋转后保存。此方法需要消耗少量的服务器资源。

function correct_image_orientation(target) {
    if(!function_exists('exif_read_data')) {
        return false;
    }exif = exif_read_data(target);
    if(exif && isset(exif['Orientation']) &&exif['Orientation'] != 1) {
        switch (exif['Orientation']) {
            case 3:deg = 180; break;
            case 6: deg = 270; break;
            case 8:deg = 90; break;
            default: deg = 0;
        }
        if(deg > 0) {
            img = imagecreatefromjpeg(target);
            img = imagerotate(img, deg, 0);
            imagejpeg(img, $target, 95);
        }
    }
}

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注