2017-09-26 15 views
1

는이 방식의 하나 인 PHP의 화상 압축 :특정 파일 크기 제한 이하로 이미지를 압축하는 방법이 있습니까?

<?php 
function compress($source, $destination, $quality) { 

    $info = getimagesize($source); 

    if ($info['mime'] == 'image/jpeg') 
     $image = imagecreatefromjpeg($source); 

    elseif ($info['mime'] == 'image/gif') 
     $image = imagecreatefromgif($source); 

    elseif ($info['mime'] == 'image/png') 
     $image = imagecreatefrompng($source); 

    imagejpeg($image, $destination, $quality); 

    return $destination; 
} 

$source_img = 'source.jpg'; 
$destination_img = 'destination .jpg'; 

$d = compress($source_img, $destination_img, 90); 
?> 

REFERENCE

그러나,이 특정 품질을 지정하여 압축 할 만하다. 현재 이미지 업로드 기능을 사용 중입니다. 평상시와 같이 하드 파일 크기 제한을 설정하는 대신 업로드 된 이미지를 파일 크기 제한보다 크기 때문에 파일 크기 제한보다 작게 압축하려고합니다. 내가 할 수있는 방법이 있습니까 WITH 시도하고 오류가 있습니까?

+1

나는 그렇게 생각하지 않는다. – Manav

답변

0

아니요. jpeg 라이브러리가 해당 종류의 기능을 지원하지 않기 때문에 (jpeg 압축은 내용에 따라 다름). 압축 매개 변수 (품질, 수량 ​​표)를 제공 할 수 있지만 압축 대상은 제공 할 수 없습니다.

시행 착오 해결책은 대부분의 경우 너무 오래 걸립니다. 그러나 목적은 다를 수 있습니다. 그러나 그렇지 않은 경우 특정 파일 크기 아래의 이미지를 압축해야하는 경우 매우 비슷한 이미지 (예 : 같은 분 단위로 촬영 한 사진)에서 품질 매개 변수를 다시 사용할 수 있습니다. jpegfit는 완벽한 일치를 얻으려고합니다. 즉, 반복 횟수 (기본값 : 16)가 지나면 중지되고, phpthumb이 너무 강하게 줄어드는 것을 의미합니다 (기본값 , 82,70605246403530,26,22, ...) 내 취향을.

1

예, http://phpthumb.sourceforge.net/을 사용할 수 있습니다. image processing features 목록에서이

  • 품질이 자동으로 조정 된 특정 출력 바이트 크기에 맞게 할 수 있다고 말한다.

는 대신 평소와 같이 하드 파일 크기 제한을 설정이 https://www.phpclasses.org/package/3810-PHP-Optimize-images-to-fit-in-a-given-file-size-limit.html

+0

당신은 나의 upvote를 가지고있다. 하지만 내부적으로이 도구는 try와 error를 사용합니다. 아마도 조금 더 정교한 방법 일 것입니다. – Leif

+0

사용할 수있는 방법이 많지 않으므로 시도해 볼만한 가치가 있다고 생각했습니다. – ProEvilz

0

있다, 나는, 파일 크기 제한보다 큰 업로드 된 이미지를 압축하고 싶습니다 있도록 파일 크기 제한보다 작습니다. 시도와 오류없이 할 수있는 방법이 있습니까?

따라서 파일 크기 제한 이하로 을 단지으로 압축하지 않으려 고합니다. 그리고 당신은 시도와 오류를 원하지 않습니다. 해결책은 품질을 0으로 설정하는 것입니다. 크기가 한계보다 작 으면 성공했습니다. 위의 경우 파일을 그 크기보다 작게 만들 수있는 방법이 없습니다.