2015-10-02 5 views
0

Im пытается сделать изображения iphone вращаться при изменении размера, но я просто не могу заставить его работать.PHP Ориентация изображения при загрузке

Детали загрузки и изменения размера работают нормально. Его вращательная часть, которая дает мне неприятности.

Я надеюсь, что кто-то может заметить мою ошибку новобранец! :-)

function image_fix_orientation($src, $filename) { 
    $exif = exif_read_data($filename, 0, true); 

    if (!empty($exif['Orientation'])) { 
     $ort = $exif['IFD0']['Orientation']; 
     switch ($ort) { 
      case 3: 
       $src = imagerotate($src, 180, 0); 
       break; 

      case 6: 
       $src = imagerotate($src, -90, 0); 
       break; 

      case 8: 
       $src = imagerotate($src, 90, 0); 
       break; 
     } 
    } 

    return $src; 

} 

function uploadImage($inputImage){ 

    $inputImage = $inputImage; 
    $uniqueId = uniqid(); 

    $errors=0; 

    if (isset($_POST['submitNewProduct']) || isset($_POST['productImageEdit']) || isset($_POST['productImageSecondEdit']) || isset($_POST['productImageThirdEdit'])) { 

     ini_set('memory_limit', '-1'); 

     $image =$_FILES[$inputImage]["name"]; 

     $uploadedfile = $_FILES[$inputImage]['tmp_name']; 

     $size=filesize($_FILES[$inputImage]['tmp_name']); 

     if(isset($_POST['productImageValue'])) { 
      $productInputValue = $_POST['productImageValue']; 
     } else { 
      $productInputValue = 0; 
     } 

     if(isset($_POST['productImageSecondValue'])) { 
      $productInputValueSecond = $_POST['productImageValueSecond']; 
     } else { 
      $productInputValueSecond = 0; 
     } 

     if(isset($_POST['productImageThirdValue'])) { 
      $productInputValueThird = $_POST['productImageValueThird']; 
     } else { 
      $productInputValueThird = 0; 
     } 



     if ($productInputValue < 18388608 || $productInputValueSecond < 18388608 || $productInputValueThird < 18388608) { 

      if ($size < 18388608) { 

       if (!empty($image)) { 

        $filename = stripslashes($_FILES[$inputImage]['name']); 
        $extension = getExtension($filename); 
        $extension = strtolower($extension); 

        if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { 

         echo "<h3>Forkert filformat, kun JPG, PNG og GIF er tilladt.</h3>"; 
         $errors=1; 

        } 

        else { 

         if($extension=="jpg" || $extension=="jpeg") { 
          $uploadedfile = $_FILES[$inputImage]['tmp_name']; 
          $src = imagecreatefromjpeg($uploadedfile); 
          $src = image_fix_orientation($src, $filename); 
         } 

         else if($extension=="png") { 
          $uploadedfile = $_FILES[$inputImage]['tmp_name']; 
          $src = imagecreatefrompng($uploadedfile); 
         } 

         else { 
          $src = imagecreatefromgif($uploadedfile); 
         } 

         list($width,$height)=getimagesize($uploadedfile); 

         if($width <= 800) { 
          $newwidth= $width; 
         } else { 
          $newwidth= 800; 
         } 

         if(!$errors) { 

          $newheight=($height/$width)*$newwidth; 
          $tmp=imagecreatetruecolor($newwidth,$newheight); 
          imagefilledrectangle($tmp, 0, 0, $newwidth, $newheight, imagecolorallocate($tmp, 255, 255, 255)); 
          imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); 

          $filename = "uploads/". $uniqueId . "-" . $_FILES[$inputImage]['name']; 

          imagejpeg($tmp,$filename,100); 

          imagedestroy($src); 
          imagedestroy($tmp); 

         } 

         else { 
          echo "<h3>Der skete en fejl, prøv venligst igen</h3>"; 
         } 

        } 

       } 

      } else { 
       echo "<h3>Billedet: " . $_FILES[$inputImage]["name"] . " fylder for meget.</h3>"; 
      } 

     } else { 
      echo "<h3>Et af billederne fylder for meget.</h3>"; 
     } 

    } 

     $productImage['name'] = $uniqueId . "-" . basename($_FILES[$inputImage]["name"]); 
     $productImage['ort'] = $convertToInt; 

     return $productImage; 

} 

EDIT: Я попробовал решение отправил в ответах, но теперь я получаю эту ошибку: https://gyazo.com/591feaa396e194a69a012715d02a32e7

Большое вам спасибо за ваше время заранее!

С уважением! :-)

+0

Так какая часть вращения дает вам неприятности? Это вообще работает? Что с этим не так? :-) – derape

+0

Спасибо за ваш ответ. Я получаю эту ошибку: gyazo.com/591feaa396e194a69a012715d02a32e7 После того, как я обновил код. – RK4002

ответ

1

imagerotate() ожидает ресурс изображения, вы предоставляете ему строку пути к файлу.

переместить вызов image_fix_orientation() после imagecreatefromjpeg() функции

if($extension=="jpg" || $extension=="jpeg") { 
    $uploadedfile = $_FILES[$inputImage]['tmp_name']; 
    $src = imagecreatefromjpeg($uploadedfile); 
    $src = image_fix_orientation($src , $filename); 
} 
+0

Большое спасибо, теперь я получаю эту ошибку: https://gyazo.com/591feaa396e194a69a012715d02a32e7 – RK4002