2013-08-26 4 views
0

우리는 안드로이드 애플 리케이션을 가지고 우리는 PHP에서 POST로 안드로이드 애플 리케이션에서 온 이미지에서 2 출력 이미지를 저장 싶습니다.
문제는 이미지 유형이 지정되지 않았고 모든 유형의 앱 이미지가 .png 확장자로 제공된다는 것입니다. 이제 이미지의 크기를 조정하려면 이제 이미지 유형을 변경해야합니다.
그렇다면 this class을 사용하여 알 수없는 이미지의 크기를 조정하고 파일에 저장하려면 어떻게해야합니까?PHP의 안드로이드 애플 리케이션에서 이미지 크기 조정

내 코드 :

if (isset($_FILES["img1"])){ 
    move_uploaded_file($_FILES["img1"]["tmp_name"] , "../../spl_img/".$gallery_id."-img1.png"); 

    $address = "../../spl_img/".$gallery_id."-img1.png"; 
    $resizeObj = new resize($address); 
    $resizeObj -> resizeImage(80, 'portrait'); 
    $resizeObj -> saveImage("../../spl_img_thumb/".$gallery_id."-img1.png", 100); 

내가 PNG의 JPG의 유형 및 확장자를 가진 이미지 크기를 조정하고자 할 때받을 오류 :

Warning: imagecreatetruecolor() expects parameter 2 to be long, string given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 76 

Warning: imagecopyresampled() expects parameter 1 to be resource, null given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 77 

Warning: imagejpeg() expects parameter 1 to be resource, null given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 217 

Warning: imagedestroy() expects parameter 1 to be resource, null given in /home/porsojoy/public_html/webservice/spl_img/resize-class.php on line 246 

답변

0

EXIF ​​방법과 이미지 유형을 확인을 도트 뒤에 파일 확장자
을 찾는 것보다 정확합니다.

클래스에있는 "openImage()"함수를 재정의 할 수 있습니다.

  private function openImage($file) 
     { 

      switch (exif_imagetype($file)) 
      { 
        case IMAGETYPE_GIF: 
         $img = @imagecreatefromgif($file); 
        break; 

        case IMAGETYPE_JPEG: 
         $img = @imagecreatefromjpeg($file); 
        break; 

        case IMAGETYPE_PNG: 
         $img = @imagecreatefrompng($file); 
        break; 

      } 

      return $img; 
     } 

Windows의 아래에 다음 줄의 주석

php.ini 파일의 EXIF ​​확장을 가능하게하는 것을 잊지 마십시오
확장 = php_mbstring.dll
확장 = php_exif.dll

추가 정보 : php.net/exif

+0

치명적 오류 :/home/porsojoy/public_html/webservice/spl_img /에서 정의되지 않은 함수 exif_imagetype()을 호출하십시오. 43 줄의 resize-class.php – behtateam

+0

이 부분은 php.ini 파일에 있습니다 : [exif] ; Exif UNICODE 사용자 주석은 JIS로 UCS-2BE/UCS-2LE 및 JIS로 처리됩니다. ; mbstring을 지원하면 자동으로 인코딩 으로 변환됩니다. 해당 인코딩 설정에 의해 주어진다. 비어있는 경우 mbstring.internal_encoding ; 사용. 디코드 설정의 경우 모토로라와 을 구별 할 수 있습니다. 인텔 바이트 순서. 디코드 설정은 비워 둘 수 없습니다. ; exif.encode_unicode = ISO-8859-15 exif.decode_unicode_motorola = "UCS-2BE" exif.decode_unicode_intel = "UCS-2LE" ; exif.encode_jis = exif.decode_jis_motorola = JIS exif.decode_jis_intel = JIS – behtateam

+0

확장 기능이 활성화되지 않은 것처럼 보입니다. PHP 루트의 "ext"폴더에있는 파일 (php_mbstring.dll 및 php_exif.dll)을 확인하십시오. – roxX

관련 문제