2009-10-30 3 views
4

이미지를 사다리꼴 모양으로 기울여야합니다. 왼쪽 및 오른쪽 가장자리가 위아래로 똑바로 될 필요가 있습니다. 위쪽 및 왼쪽 가장자리가 각도가 있어야합니다. 나는 이것을하는 가장 좋은 방법이 무엇인지 전혀 모른다.GD 라이브러리로 이미지를 왜곡합니까?

저는 GD 라이브러리와 PHP를 사용하고 있습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 같은 일을 논의 -

덕분에, 제이슨

답변

5

이 시도 :

<? 
// Set it up 
$img_name = "grid.jpg"; 
$src_img = imagecreatefromjpeg($img_name); 
$magnify = 4; 

// Magnify the size 
$w = imagesx($src_img); 
$h = imagesy($src_img); 
$dst_img = imagecreatetruecolor($w * $magnify, $h * $magnify); 
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $w * $magnify, $h * $magnify, $w, $h); 
$src_img = $dst_img; 

// Skew it 
$w *= $magnify; 
$h *= $magnify; 
$new_lh = abs($h * 0.66); 
$new_rh = $h ; 
$step = abs((($new_rh - $new_lh)/2)/$w); 
$from_top = ($new_rh - $new_lh)/2 ; 
$dst_img = imagecreatetruecolor($w, $new_rh); 
$bg_colour = imagecolorallocate($dst_img, 255, 255, 255); 
imagefill($dst_img, 0, 0, $bg_colour); 
for ($i = 0 ; $i < $w ; $i ++) 
{ 
    imagecopyresampled($dst_img, $src_img, $i, $from_top - $step * $i, $i, 0, 1, $new_lh + $step * $i * 2, 1, $h); 
} 

// Reduce the size to "anti-alias" it 
$src_img = $dst_img; 
$dst_img = imagecreatetruecolor($w/$magnify * 0.85, $new_rh/$magnify); 
imagecopyresampled ($dst_img, $src_img, 0, 0, 0, 0, $w/$magnify * 0.85, $h/$magnify, $w, $h); 

header("Content-Type: image/jpg"); 
imagejpeg($dst_img); 
?> 
+0

에게 감사드립니다. 당신은 다른 쪽 주위에 있습니까? – lilsizzo

2

나는이 thread (> 영어 번역 네덜란드어)를 발견했다. 네가 쫓아 온 것 같아. GD로 자신의 기능을 쓰지 않고도 왜곡 할 수 없다는 것이 확실합니다. ImageMagick을 사용할 수 있다면이 이미지는 easier to achieve입니다.

행운을 빈다.

+0

예, ImageMagick이, 그것은 대부분의 아무것도 할 수 있습니다 내 마음에 온 것입니다. 해결책에 대해 – Don

관련 문제