2017-03-18 10 views
0

나는 50 %에 이미지 크기를 조정이 PHP 스크립트 (또는 사전 설정 비율) 이제PHP 이미지

$filename = 'test.jpg'; 
$percent = 0.5; 

// Content type 
header('Content-Type: image/jpeg'); 

// Get new dimensions 
list($width, $height) = getimagesize($filename); 
$new_width = $width * $percent; 
$new_height = $height * $percent; 

// Resample 
$image_p = imagecreatetruecolor($new_width, $new_height); 
$image = imagecreatefromjpeg($filename); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

// Output 
imagejpeg($image_p, null, 100); 

을 가지고있는 I 1200 (PX)으로 $의 new_width를 지정하고 말하고 싶은 경우 은 $ new_height는 가로 세로 비율을 유지 자동으로 계산하고 "시험 2.JPG"로 새 이미지의 이름을 설정할 수

$filename = 'test.jpg'; 

// Content type 
header('Content-Type: image/jpeg'); 

// Get new dimensions 
list($width, $height) = getimagesize($filename); 
$new_width = 1200; 
$new_height = // MUST BE AUTO; 

// Resample 
$image_p = imagecreatetruecolor($new_width, $new_height); 
$image = imagecreatefromjpeg($filename); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

// Output 
imagejpeg($image_p, null, 100); 

답변

2

다음 식을 유지해야한다는 것을 의미한다 :

$new_height/$new_width == $height/$width 

따라서, 새로운 높이를 산출하기위한 식이다 ceil가되도록

$new_height = ceil($height * ($new_width/$width)); 

하는 것으로 새 높이는 정수 값이고 적어도 1입니다 (새 너비와 이전 너비 + 높이가 모두 양수인 경우).

2

이 무슨 뜻인가? "종횡비를 유지"

// Get new dimensions 
list($width, $height) = getimagesize($filename); 
$new_width = 1200; 
$new_height = ($height/$width)*$new_width; 
+0

아주 간단하고 유용한 해결책! –