zoukankan      html  css  js  c++  java
  • 移动端上传图片iphone图片旋转以及服务端处理方法

    判断是否需要旋转

        /**
                 *iphone判断图片方向,是否需要旋转图片
                 */
                if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')&&in_array($ext, array('jpg','png','gif','jpeg','jepg'))){
                    $exif =exif_read_data($tmp);
                    switch ($exif['Orientation']){
                        case 6:
                            self::imgturn($tmp,1,$ext);
                            break;
                        case 3:
                            self::imgturn($tmp,1,$ext);
                            self::imgturn($tmp,1,$ext);
                            break;
                        case 8:
                            self::imgturn($tmp,2,$ext);
                            break;
                    }
                }

    一下是php旋转方法

    function imgturn($src, $direction = 1,$ext) {
            switch ($ext) {
                case 'gif' :
                    $img = imagecreatefromgif ( $src );
                    break;
                case 'jepg':
                case 'jpg' :
                case 'jpeg' :
                    $img = imagecreatefromjpeg ( $src );
                    break;
                case 'png' :
                    $img = imagecreatefrompng ( $src );
                    break;
                default :
                    die ( '图片格式错误!' );
                    break;
            }
            $width = imagesx ( $img );
            $height = imagesy ( $img );
            $img2 = imagecreatetruecolor ( $height, $width );
            // 顺时针旋转90度
            if ($direction == 1) {
                for($x = 0; $x < $width; $x ++) {
                    for($y = 0; $y < $height; $y ++) {
                        imagecopy ( $img2, $img, $height - 1 - $y, $x, $x, $y, 1, 1 );
                    }
                }
            } else if ($direction == 2) {
                // 逆时针旋转90度
                for($x = 0; $x < $height; $x ++) {
                    for($y = 0; $y < $width; $y ++) {
                        imagecopy ( $img2, $img, $x, $y, $width - 1 - $y, $x, 1, 1 );
                    }
                }
            }
            switch ($ext) {
                case 'jepg':
                case 'jpg' :
                case "jpeg" :
                    imagejpeg ( $img2, $src, 100 );
                    break;
                
                case "gif" :
                    imagegif ( $img2, $src, 100 );
                    break;
                
                case "png" :
                    imagepng ( $img2, $src, 100 );
                    break;
                
                default :
                    die ( '图片格式错误!' );
                    break;
            }
            imagedestroy ( $img );
            imagedestroy ( $img2 );
        }

  • 相关阅读:
    imp.load_source的用法
    第12周翻译
    第十周学习笔记
    翻译:高级t
    t-sql
    9周学习笔记
    第8周学习笔记
    t-sql的楼梯:超越基本级别6:使用案例表达式和IIF函数
    数据库设计层次3:构建表
    第七周学习笔记
  • 原文地址:https://www.cnblogs.com/sss-justdDoIt/p/6259339.html
Copyright © 2011-2022 走看看