티스토리 뷰

WEB 전체/PHP

PHP 이미지 합성 소스

minov 2011. 10. 24. 09:07
PHP 에서 imagepng 사용해서 이미지 합성하는 방법.


 imagecolorallocatealpha = 이미지 배경색상 지정 +  alpha 값 지정

	// 모자 리사이징 이미지의 배경색 지정후 채워주기
	$moja_resize_bg = imagecolorallocatealpha($moja_resize, 0, 0, 0, 127);
	imagefill($moja_resize, 0, 0, $moja_resize_bg);

	#####################################################################################################################

	// 저장할 이미지의 사이즈 영역 생성 (220 x 260)
	$save_user_image = imagecreatetruecolor(220, 260);

	// 저장할 이미지의 배경색 지정후 채워주기
	$save_user_image_bg = imagecolorallocatealpha($save_user_image, 0, 0, 0, 127);
	imagefill ($save_user_image, 0, 0, $save_user_image_bg);

	// 모자 이미지에 회전각 적용 
	// imagealphablending = 원본 이미지에 배경 색상 알바 채널을 사용할 수 있도록 정의 
	// imagesavealpha 는 png 이미지를 저장할때 전체 알파 채널정보를 저장하는 부분 (배경영역에 alpha 값 적용)
	// 앵글 (회전각)
	if ($angle)
	{
		// 이미지 회전.
		$moja_image = imagerotate ($moja_image, $angle*-1, -1);
		imagealphablending($moja_image, true);
		imagesavealpha($moja_image, true);
	}

	#####################################################################################################################

	// 모자이미지 원본의 정보를 복사후 정의된 크기만큼 리사이징
	// (변경될 이미지 , 원본이미지 , 변경될이미지 x좌표 , 변경될 이미지 y좌표 , 원본이미지 x좌표 , 원본이미지 y좌표 , 변경될 이미지 넓이 , 변경될 이미지 높이 , 원본이미지 넓이 , 원본이미지 높이)
	imagecopyresized($moja_resize, $moja_image, $margin_left, $margin_top, 0, 0, $image_width, $image_height, imagesx($moja_image), imagesy($moja_image));

	#####################################################################################################################

	// 사용자 이미지 원본의 정보를 복사후 정의된 크기만큼 리사이징
	// (변경될 이미지 , 원본이미지 , 변경될이미지 x좌표 , 변경될 이미지 y좌표 , 원본이미지 x좌표 , 원본이미지 y좌표 , 변경될 이미지 넓이 , 변경될 이미지 높이 , 원본이미지 넓이 , 원본이미지 높이)
	imagecopyresized($save_user_image, $user_image, 0, 0, 0, 0, 220, 260, imagesx($user_image), imagesy($user_image));

	/*
		(변경될 이미지 , 원본이미지 , 변경될이미지 x좌표 , 변경될 이미지 y좌표 , 원본이미지 x좌표 , 원본이미지 y좌표 , 변경될 이미지 넓이 , 변경될 이미지 높이)
		imagecopy($big_user_image, $moja_image, $margin_left, $margin_top, 0, 0,imagesx($user_image),imagesy($user_image));
		imagecopy($big_user_image, $thumb, 0, 0, 0, 0, 220, 260);
		imagecopy($big_user_image, $user_image, 0, 0, 0, 0, 220, 260);
	*/

	#####################################################################################################################

	// 최종적으로 리사이징 된 사용자 이미지에 모자 이미지 적용
	imagecopy($save_user_image, $moja_resize, $margin_left, $margin_top, 0, 0, imagesx($moja_resize),imagesy($moja_resize));

	// 멘트 입력
	imagestring($save_user_image, 4, 240, 18, "When I was 5", 0);

	// png 이미지로 저장.
	imagepng ($save_user_image, $_SERVER['DOCUMENT_ROOT'].'/ImgUp/final_'.$_SESSION["M_Uid"].'.png');
?>
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함