본문 바로가기

개발

[PHP] gd가 이미지를 로드하지 못할때 해결방법

PHP에서 이미지를 변경해야할때 (리사이징, 워터마크삽입등) GD를 많이 사용합니다.
보통은 아래처럼 이미지를 로드합니다.



그런데 PHP 최근버전 (5.xx)에서 GD가 몇몇 이미지를 못읽는 현상이 발생합니다.
이럴경우 이미지를 직접읽어서 imagecreatefromstring 함수를 사용하면됩니다.
로컬파일이면 fopen으로 열고 다른서버일경우 curl로 아래와같이 다운받아 넘겨줍니다.


  • 갑자기 생각이 나서 다녀가.
    새해 복 많이 받아요.

  • 구리구리 2010.06.07 20:48 신고 댓글주소 수정/삭제 댓글쓰기

    Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '../data/file/dd/554932976_0271a647_dddd.jpg' is not a valid JPEG

    이런오류도 위의 방법으로 해결할수 있나요??
    jpeg가 유효하지 않다고 나옵니다.

    ----------------아래소스에서 어떻게 수정을..

    $size = getimagesize($file);
    if ($size[2] == 1){
    $src = imagecreatefromgif($file);
    }else if ($size[2] == 2){
    $src = imagecreatefromjpeg($file);
    }else if ($size[2] == 3){
    $src = imagecreatefrompng($file);
    }else{
    break;
    }