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 );
        }

  • 相关阅读:
    一个很吊的swing循环生成窗口。
    hbase操作的问题
    hadoop+hbase
    linux故障救援
    管道命令xargs
    hadoop浅尝 hadoop与hbase交互
    linux源代码阅读笔记 free_page_tables()分析
    词法分析器flex的使用
    每天一个Linux命令(1): find
    梯度下降
  • 原文地址:https://www.cnblogs.com/sss-justdDoIt/p/6259339.html
Copyright © 2011-2022 走看看