2017-03-21 6 views
0

해상도가 720x1280 인 이미지가 있고 해상도가 800x1500 인 서버에 이미지를 저장해야합니다. 720x1280은 높이 1500으로 증가 했으므로 844x1500의 해상도를 제공하므로 이미지를 자르고 왼쪽 및 오른쪽에서 22 픽셀을 제거해야합니다. 대한PHP에서 URL에서 이미지 해상도 높이기 및 자르기

지금 나는이 있습니다

$img_url = file_get_contents($url); 

$img = imagecreatefromstring($img_url); 

$width = imagesx($img); 
$height = imagesy($img); 

$new_width = '800'; 
$new_height = '1500'; 

$thumb = imagecreatetruecolor($new_width, $new_height); 

imagecopyresampled($thumb, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

imagejpeg($thumb, $name, 100); 

imagedestroy($thumb); 
imagedestroy($img); 

을 그러나 문제는 그 이미지가 잘립니다되지 왼쪽과 오른쪽 측면에서 22 개 픽셀이 제거되지 않습니다이다.

먼저 URL에서 이미지 해상도를 높이고 자르는 방법이 있습니까? php image crop를 인터넷 검색

답변

1

the secret 계시 :이 라인에서

$rect = [22, 0, 800, 1500] 
$thumb = imagecrop($thumb, $rect) 
+0

이 경우'$ new_width = '844';를 먼저 설정하고 자르기를해야합니다. – cyborg86pl

+0

맞아, 맞는 말이야. 나는 자르기에 대한 OP의 질문에 대답하고있을뿐입니다. 코드에 다른 문제가 있습니다. – alexis

+0

고마워, 그게 내가 필요한거야! 다른 것들이 코드에 어떤 문제가 있는지 말해 줄 수 있습니까? – user3593157

0

:

imagecopyresampled($thumb, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

방금 ​​새로운 차원으로 원본 이미지를 확장 할 수 있습니다. documentation로서 말한다 : 소스 및 대상 좌표와 폭 및 높이가 다른 경우, 적절한 연신 또는 수행 될 화상 단편 수축

.

당신은 설정해야합니다

당신의 목적지 사진에 붙여 소스 이미지의 요구 (비례) 사각형을 잘라
$shiftX = 22*(1280/1500); // consider passing variables rather than constant values 
$scaledWidth = 720-$shiftX*2; 
imagecopyresampled($thumb, $img, 0, 0, $shiftX, 0, $new_width, $new_height, $scaledWidth, $height); 

.