의 중앙에 이미지와 장소의 크기를 조정하고 난 일하러 수 없습니다 이미지가 390 픽셀 이상 높은 경우는 다음의 크기를 조정하는 경우,캔버스
확인 크기를 유지하지 않으면 높이가 390 픽셀입니다.
흰색 캔버스를 300px 너비로 400px 높이로 추가 한 다음 이미지를 가운데에 배치합니다.
내 코드는 다음과 같습니다
$im = new imagick("test.jpg");
$imageprops = $im->getImageGeometry();
$width = $imageprops['width'];
$height = $imageprops['height'];
if($height > '390'){
$newHeight = 390;
$newWidth = (390/$height) * $width;
}else{
$newWidth = $imageprops['width'];
$newHeight = $imageprops['height'];
}
$im->resizeImage($newWidth,$newHeight, imagick::FILTER_LANCZOS, 0.9, true);
$canvas = new Imagick();
$canvas->newImage(300, 400, 'white', 'jpg');
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 100, 50);
$canvas->writeImage("test-1.jpg");
이미지가 큰 사람은 원래의 크기로 남아있는 388 개의 이유로 높은 픽셀과 작은 것들로 조정됩니다 생산합니다.
합성 이미지에 100,50을 추가 한 큰 이미지에서 작동하지만 캔바스에 배치하는 것은 항상 올바르지 않습니다.
이미지의 대부분은 크고 얇지 만 키가 큰 것보다 더 넓은 이미지가 있습니다.
내가 잘못 가고있는 아이디어가 있습니까?
감사합니다,
릭
당신은 쉽게()'가 300x400의 흰색 캔버스에 이미지를 넣어'setImageExtent를 사용하여 다음 CENTER, 흰색의 배경 색상에 중력을 설정하고 찾을 수 있습니다. –
'if ($ height> 390)'따옴표가 없습니다. –