2012-04-21 8 views
0

imagerotate() 함수를 사용하여 아래 이미지를 30도 각도로 회전합니다.PHP에서 이미지를 올바르게 회전하는 방법은 무엇입니까?

http://postimage.org/image/b7w6dacel/

문제는 그 나는 이미지를 회전하고 이미지를 회전 새로운 경로, 새 경로에 저장하지만 아래처럼, 그것을 둘러싼 검은 색이있을 때마다.

http://postimage.org/image/n3n1vtr9p/8501961e/

원본 이미지는 450 * 340 회전 후, 이미지가 560 * 520이 사람이 내가 잘못하고있는 중이 야 알고 있나요된다. 아래 내 소스 코드를 살펴보십시오. 감사.

$filename = "static\\". $sessionid . "-1.jpg"; 
$file= $sessionid . "-1.jpg"; 
$ir = imagecreatefromjpeg($filename); 
$degrees = 30; 
$flip=imagerotate($ir, $degrees, 0); 
$rotated=imagejpeg($flip, 'c:\\xampp\\htdocs\\'. $file); 
+0

예상되는 동작입니다. 너는 무엇을 기대 했는가? – Halcyon

+0

치수를 늘리지 않고 이미지를 회전시키고 싶습니다. 회전 이미지는 주변에 검은 색으로 완전히 새로운 이미지처럼 보이기 때문입니다. – user875139

+0

그럼 자르시겠습니까? 일부 '배경'을 표시하지 않으려면 결과가 원본보다 작아야 함을 명심하십시오. – Halcyon

답변

1

당신이 그것을 회전 정도에 따라 새로운 이미지가 원본보다 커집니다. 새 이미지의 크기를 조정하거나 잘라야합니다. 이 코드는 $oldImage에서 $newWidth까지 및 $newHeigth에서 시작합니다.

$newImage = imagecreatetruecolor($newWidth, $newHeight); 
imagecopyresampled($newImage, $oldImage, 0, 0, 0, 0, $newWidth, $newHeight, imagesx($oldImage), imagesy($oldImage)); 

희망이 도움이됩니다.

+0

감사합니다. – user875139

+0

다행이 당신을 위해 일했습니다. – Joel

관련 문제