유

프레임이미지와 얼굴이미지 합치기

· 2014-08-01 (금) 16:26:24 · 7408
대단할것은 없는 강좌이지만,
제 강좌를 출처를 밝히고 외부로 퍼가는 것은 허용하지만,
다른 강좌의 자료나 책의 자료로 사용되거나 부분적인 인용은 허용하지 않습니다.

강좌는 php 5. 대를 기준으로 하며, 이미지 관련을 다룹니다.
이미지에 글을 쓰거나 이미지를 합치거나 하는 등의 내용을 다루어 볼까 합니다.
나중에는 간단한 짤방 만들기 같은 것도 할수 있지 않을까 싶습니다.


이미지관련 > 프레임이미지와 얼굴이미지 합치기

 

이번 내용은

프레임사진과 얼굴 사진을 가지고 새로운 사진으로 합쳐서 저장하는 부분을 다룹니다.

 

예제9 > study9.php

 

<?php

@error_reporting( E_ALL );
header("Content-Type: text/html; charset=UTF-8");

include_once('image_proc.function.php');



$frame_file = 'study9_frame.png'; // 액자 사진
$face_file = 'study9_face.jpg'; // 얼굴 원본 사진
$face_resize_file = 'temp/study9_face_resize.jpg'; // 얼굴 사이즈 조정후 저장 사진
$face_rotate_file = 'temp/study9_face_rotate.jpg'; // 얼굴 각도 조정후 저장 사진
$result_file = 'temp/study9_result.jpg'; // 최종 결과 사진

$face_resize_width = 90; // 얼굴 사이즈 조정 너비
$face_resize_height = 90; // 얼굴 사이즈 조정 높이
$face_angle = 35; // 얼굴 각도 조정용 각도



$frame_im = @imagecreatefrompng($frame_file);
$fame_width = imagesx($frame_im);//프레임의 너비
$fame_height = imagesy($frame_im);//프레임의 높이



//얼굴 사진 90 * 90 으로 줄여서 저장
create_thumbnail($face_file, $face_resize_file, $face_resize_width, $face_resize_height, array('quality'=>100));



// 얼굴사진을 35도 회전
$face_resize_im = @imagecreatefromjpeg($face_resize_file);
$face_rotate_im = @imagecreatetruecolor($fame_width , $fame_height);
imagecopyresampled($face_rotate_im , $face_resize_im , ceil(($fame_width - $face_resize_width) / 2) , ceil(($fame_height - $face_resize_height) / 2) , 0 , 0 , $face_resize_width , $face_resize_height , $face_resize_width , $face_resize_height);
$face_rotate_im = imagerotate($face_rotate_im, $face_angle, 0);
imagejpeg($face_rotate_im , $face_rotate_file, 100);
@imagedestroy($face_resize_im);



//프레임과 얼굴 합침
$result_im = @imagecreatetruecolor($fame_width , $fame_height);
imagecopyresampled($result_im , $face_rotate_im , 23 , -65 , 0 , 0 , $fame_width , $fame_height , $fame_width , $fame_height);
imagecopyresampled($result_im , $frame_im , 0 , 0 , 0 , 0 , $fame_width , $fame_height , $fame_width , $fame_height);
imagejpeg($result_im, $result_file);

@imagedestroy($result_im);
@imagedestroy($face_rotate_im);

?>

프레임용 원본 사진<br>

<img src="study9_frame_original.jpg"><br><br>

포토샵으로 하트안을 투명으로 수정한 이후 프레임용 사진<br>

<img src="study9_frame.png"><br><br>

송혜교 얼굴 원본 사진<br>

<img src="study9_face.jpg"><br><br>

송혜교 얼굴 크기 수정한 이후 사진<br>

<img src="<?php echo $face_resize_file; ?>?<?php echo time(); ?>"><br><br>

송혜교 얼굴 각도 수정후 사진<br>

<img src="<?php echo $face_rotate_file; ?>?<?php echo time(); ?>"><br><br>

결과<br>

<img src="<?php echo $result_file; ?>?<?php echo time(); ?>"><br><br>

 

함수만 알면 크게 어려울것이 없는 내용입니다.

이미지 위치를 맞추기 위한 약간의 노가다만 필요할 뿐입니다.

 

순서는

 

1. 얼굴 사진을 내가 원하는 사이즈로 조정하여 저장

2. 사이즈가 조정된 얼굴 사진을 원하는 각도로 회전시켜 저장

3. 결과물이 될 이미지 리소스를 생성하고

얼굴을 위치 정해서 복사하고

투명한 부분이 포함된 프레임을 그위에 덮으면 됩니다.

 

create_thumbnail  

이함수는 이전 썸네일 함수 강좌에서 만들어진 결과물이므로 굳이 설명을 하지 않겠습니다.

(http://sir.co.kr/bbs/board.php?bo_table=pg_lecture&sca=%EC%8D%B8%EB%84%A4%EC%9D%BC)

 

imagerotate

주어진 이미지 리소스를 가지고 주어진 각도로 이미지를 회전시켜 그 결과 이미지 리소스를 반환합니다. 

첨부파일

|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
14-08-26 조회 7,284
14-08-25 조회 4,072
14-08-23 조회 3,850
14-08-22 조회 4,352
14-08-22 조회 1만
14-08-22 조회 3,917
14-08-22 조회 5,154
14-08-22 조회 4,108
14-08-22 조회 3,992
14-08-21 조회 4,163
14-08-21 조회 3,737
14-08-21 조회 3,583
14-08-20 조회 3,945
14-08-20 조회 3,618
14-08-19 조회 4,424
14-08-19 조회 3,635
14-08-19 조회 3,970
14-08-19 조회 3,728
14-08-19 조회 7,476
14-08-19 조회 3,569
14-08-18 조회 3,841
14-08-18 조회 4,380
14-08-18 조회 3,741
14-08-17 조회 8,115
14-08-17 조회 6,385
14-08-17 조회 7,799
14-08-17 조회 3,624
14-08-16 조회 4,187
14-08-16 조회 4,174
14-08-16 조회 4,203
14-08-14 조회 3,983
14-08-14 조회 3,508
14-08-13 조회 6,271
14-08-13 조회 5,806
14-08-13 조회 5,206
14-08-13 조회 4,295
14-08-13 조회 4,324
14-08-13 조회 5,716
14-08-13 조회 3,644
14-08-12 조회 3,995
14-08-12 조회 5,356
14-08-12 조회 6,217
14-08-12 조회 4,088
14-08-12 조회 3,766
14-08-12 조회 4,261
14-08-11 조회 3,596
14-08-11 조회 4,273
14-08-11 조회 3,590
14-08-11 조회 4,281
14-08-11 조회 4,053
14-08-11 조회 5,106
14-08-11 조회 6,813
14-08-11 조회 6,299
14-08-11 조회 6,599
14-08-11 조회 4,505
14-08-11 조회 4,554
14-08-11 조회 5,190
14-08-08 조회 3,837
14-08-08 조회 4,462
14-08-08 조회 6,622
14-08-07 조회 5,207
14-08-07 조회 3,560
14-08-07 조회 4,269
14-08-06 조회 4,061
14-08-06 조회 3,642
14-08-06 조회 5,942
14-08-06 조회 4,490
14-08-06 조회 4,352
14-08-06 조회 3,982
14-08-06 조회 6,249
14-08-06 조회 5,541
14-08-06 조회 3,829
14-08-06 조회 6,441
14-08-06 조회 3,934
14-08-05 조회 3,505
14-08-05 조회 3,801
14-08-05 조회 3,575
14-08-05 조회 3,597
14-08-05 조회 3,916
14-08-04 조회 4,771
14-08-04 조회 3,936
14-08-04 조회 3,569
14-08-03 조회 3,450
14-08-03 조회 5,521
14-08-03 조회 4,953
14-08-03 조회 5,199
14-08-02 조회 4,477
14-08-01 조회 5,581
14-08-01 조회 6,161
14-08-01 조회 7,409
14-08-01 조회 8,696
14-08-01 조회 5,120
14-08-01 조회 4,707
14-08-01 조회 4,615
14-08-01 조회 4,016
14-08-01 조회 3,987
14-08-01 조회 4,081
14-08-01 조회 3,759
14-08-01 조회 4,625
14-08-01 조회 5,083