2011-03-06 4 views
1

여기에 무엇을하려고합니다. 나는 완전히 새로운 것을 조언한다. GD2PHP GD 이미지 (2 파일 포함)

나는이 방법으로 2 개의 이미지 중에서 이미지를 만들고 싶다; 이미지 가득

배경 직사각형 그 뒤에는 1

나는 다른 화상 가득 위에 polygon을 그리려는 없다.

내가 지금 가지고있는 것은 직사각형과 배경 이미지입니다.

다각형을 그릴 수는 있지만 다른 이미지로 채우는 방법을 파악할 수 없습니다. 그것은 지금 파란색으로 채워져 있고 다른 이미지로 채우고 싶습니다. Heres는

당신이 imagepng() 렌더링 볼 수있는 내 코드

$values = array(
      40, 50, // Point 1 (x, y) 
      20, 240, // Point 2 (x, y) 
      60, 60, // Point 3 (x, y) 
      240, 20, // Point 4 (x, y) 
      50, 40, // Point 5 (x, y) 
      10, 10 // Point 6 (x, y) 
     ); 

$image2 = imagecreatefromjpeg('test2.jpg'); 
$image = imagecreatefromjpeg('test.jpg'); 

$bg = imagecreatefromjpeg('test.jpg'); 

$fill = imagecolorallocate($image, 0, 0, 255); 

// fill the background 
imagefilledrectangle($image, 0, 0, 249, 249, $bg); 

// draw a polygon 
imagefilledpolygon($image, $values, 6, $fill); 

// flush image 
header('Content-type: image/jpg'); 
imagepng($image); 
imagedestroy($image); 

$image 내가 그것을 $ 이미지를 렌더링하는 얻을 $ 이미지 2

감사합니다 어떻게 모든

+1

헤더가 잘못되었으므로 png 이미지를 출력 할 때'Content-type : image/png'이어야합니다. – Czechnology

+0

예, 테스트 페이지 일뿐입니다. 그것의 작동 mather 헤더 내가 무엇을 줄지. 2 이미지를 1에로드하는 것에 초점을 맞추는 메신저 – MadeInDreams

+0

여전히 수정해야합니다. 3 자 밖에 없습니다. –

답변

0

난 당신이 떨어져 imagealphablending 찢어진 제안 Image2의 경우 알파 값이 0 인 색상으로 Image2에 다각형의 인버스를 그립니다. imagealphablending을 켭니다. 그리고 Image1 (배경) 위에 Image2를 복사 할 수 있습니다.

+0

이것은 다각형을 이미지에 직접 그려야한다는 뜻입니까? Cuse 저는 이미지를 그릴 필요가없는 무언가를하고 싶습니다. 다각형 좌표는 이미지를 클릭하여 사용자가 지정할 수 있도록 매 모양을 변경할 수 있습니다 사용자가 페이지를 사용하십시오 – MadeInDreams

+0

ccordinates가 중요하고 좌표 *를 기반으로 새 이미지를 원할 경우 * 생성해야합니다. 캐싱은 다른 이야기입니다. 좌표가 포함 된 파일 이름을 저장할 수 있으므로 한 번 생성 된 이미지는 후속 요청을 위해 디스크에서 제공 될 수 있습니다. - 내가 너의 질문을 오해했을 지 모르지만. – vbence

6

첫 번째 이미지 위에 두 번째 이미지를 오버레이해야합니다.

$file1 = 'test.jpg'; 
$file2 = 'test2.jpg'; 

// First image 
$image = imagecreatefromjpeg($file1); 

// Second image (the overlay) 
$overlay = imagecreatefromjpeg($file2); 

// We need to know the width and height of the overlay 
list($width, $height, $type, $attr) = getimagesize($file2); 

// Apply the overlay 
imagecopy($image, $overlay, 0, 0, 0, 0, $width, $height); 
imagedestroy($overlay); 

// Output the results 
header('Content-type: image/png'); 
imagepng($image); 
imagedestroy($image); 
+0

Haaaa !! 이게 뭐야, 내가 찾는 것 같아. 감사합니다. 단어 overlay = p를 좋아합니다. – MadeInDreams

+0

감사합니다. GD를 배우는 것만으로도 제가 작업중인 스 니펫에 큰 도움이되었습니다. –