2013-04-02 4 views
0

다음은 png 파일에서는 잘 작동하지만 jpeg/jpg에서는 압축이 작동하지 않습니다.PHP GD는 PNG를 압축하지만 Jpeg는 압축하지 않습니다

function compressImage($source, $destination, $quality) { 
    $info = getimagesize($source); 
    if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source); 
    elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source); 
    imagejpeg($image, $destination, $quality); 
    return $destination; 
} 

jpeg를 압축하려면 어떻게해야합니까?

+1

당신이 "작동하지 않는"무엇을 의미합니까? 무슨 일이야? – Adrian

+2

jpgs는 항상 압축되어 있습니다. 품질을 너무 높게 설정하면 파일 크기가 인위적으로 증가하여 실제 품질이 제로가됩니다. –

+0

@adrian 내 700KB jpeg 파일은 나중에 700KB입니다. – Joshua

답변

0

GD로 JPEG 파일을 조작하려면 libjpeg 지원 기능이 내장 된 상태에서 PHP 버전을 컴파일해야합니다. phpinfo에서 확인할 수 있습니다. 다음 두 가지를 찾아보십시오 : 당신은 사람들이 당신의 호스트를 요구하지 않는 경우

  • JPEG 지원
  • libJPEG 버전 6B (또는 다른)

수 있었다.

또 다른 문제는 jpeg 이미지의 MIME 형식이 알 수없는 것으로 나타날 수 있다는 것입니다. 라이브러리 버전을 다시 확인하십시오. 라이브러리 버전이 있으면 다시 주석을 달아주세요. 라이브러리 내포 이상의 것 이상으로 코드에 문제가 있는지를 알 수 있습니다.

+0

그의 문제는 libjpeg가 없다는 것이 아니라 OP에서 PNG로 JPEG를 만들 수 있다고 말했습니다. – Adrian

+0

차가움. JPEG 지원과 libJPEG 버전 6b를 둘 다 사용할 수 있습니다. – Joshua

0

문제는 PHP에서 발생했습니다.

해야 할 것 :

냠 설치 GD GD-(STABLE)