업로드 된 이미지 파일의 임시 경로를 보유하는 $this->_tempFile
이 있습니다.이미지 크기 조정이 제대로 작동하지 않습니까?
이제 이미지 크기를 조정하고 싶지만 이미지의 크기는 조정할 수 있지만 크기가 올바르게 조정되지는 않습니다. 출력은 이미지의 너비와 높이의 절반에서 커다란 검정색 사각형입니다 (너비). 그리고 다른 이미지를 사용해 보았는데 모두이 치수로 밝혀졌습니다. 293px × 453px 왜 나도 몰라요?
여기에 여기에 잘못된 무엇 scaleImage();
scaleImage(900, 582);
public function scaleImage($width, $height){
$rel_difference = array('width'=>0, 'height'=>0);
if($width > 604) $rel_difference['width'] = ($width-604)/604;
if($height > 453) $rel_difference['height'] = ($height-453)/453;
asort($rel_difference);
$tmpname = $this->_tempFile;
$newwidth = $width/(1+end($rel_difference));
$newheight = $height/(1+end($rel_difference));
$newwidth = round($newwidth);
$newheight = round($newheight);
$jpeg_quality = 90;
switch(exif_imagetype($tmpname)) {
case IMAGETYPE_GIF:
$img_r = imagecreatefromgif($tmpname);
break;
case IMAGETYPE_JPEG:
$img_r = imagecreatefromjpeg($tmpname);
break;
case IMAGETYPE_PNG:
$img_r = imagecreatefrompng($tmpname);
break;
default:
echo json_encode(array('error' => 'Not an image!'));
exit(0);
break;
}
$dst_r = ImageCreateTrueColor($newwidth, $newheight);
imagecopyresampled($dst_r, $img_r, 0, 0, 0, 0, $newwidth , $newheight, $width, $height);
imagejpeg($dst_r,$tmpname,$jpeg_quality);
}
내 기능입니까?
> 원본 및 대상 좌표와 너비와 높이가 다른 경우 이미지 조각을 적절하게 늘리거나 줄이는 작업이 수행됩니다. 좌표는 왼쪽 위 모서리를 나타냅니다. 이 함수는 동일한 이미지 내의 영역을 복사하는 데 사용할 수 있지만 (dst_image가 src_image와 같은 경우) 영역이 겹치면 결과를 예측할 수 없습니다. – Shikiryu