본문 바로가기
수행 프로젝트/페이스북 앱 - 포토모자이크

포토 모자이크 앱

by Ohming 2012. 6. 28.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

고급 웹 프로그래밍 텀프로젝트로 페이스북 앱을 만들었다.
이미지를 만들때 PHP GD라이브러리를 사용했다.

[ 구현 방법 ]
1. Graph API를 사용해서 사용자의 프로필 사진을 가져와서 저장하고, 사진이 등록되어있는 친구들의 프로필 사진도 랜덤하게 가져와서 저장한다.
2. php gd
라이브러리를 사용해서 사용자 프로필 사진의 가로, 세로 크기를 저장하고, 그 크기의 그림 객체를 만든다.
3. php gd
라이브러리를 사용해서 친구들의 사진을 넣을 그림객체를 사용자 프로필에서 얻은 가로, 세로 크기로 만든다. 그리고 그 객체 안에 친구들의 사진을 정렬하여 이어 붙이고 이미지를 저장한다.
4. php gd
라이브러리를 사용하여 3번에서 저장한 파일과 2번에서 만든 사진을 합친다. 그리고 합칠 때에는 친구들의 사진의 Opacity를 낮춰 배경이 비치도록 만들어 마치 여러장의 이미지들이 하나의 이미지를 이루는것과 같은 효과를 내도록 한다.
5.
최종 이미지를 저장하고, 그 저장한 이미지를 사용자의 앨범에 업로드한다.

[ 실행 결과 ]
1. 모자이크 앱을 실행하면 첫 화면에 사용자의 프로필 사진과 함께 모자이크 만들기버튼이 나타난다.


2. ‘모자이크 만들기버튼을 클릭하면 어느 정도의 시간이 지난 후 친구들의 사진과 합성된 나만의 포토 모자이크가 만들어지게 된다.

3. ‘내 앨범에 저장하기를 누르면 내 앨범에 업로드가 되고, 성공적으로 저장이 되면 아래와 같은 화면이 나온다.
다시하기를 누르면 첫 화면으로 돌아가 내 친구들의 사진을 다시 랜덤으로 가져온다.

[ 완성된 포토 모자이크 사진들 ]




01234

[ 고찰 ]



     완성이 되어 너무도 기쁘지만 아쉬운 점도 많다.

일단 히스토그램 값을 이용해 만들어지는 포토 모자이크에 비해 단순히 이미지의 Opacity 값을 조절하여 만들었기 때문에 부족한 점이 많이 보였고, 친구들의 사진들을 중복 방지 못한게 아쉽다.

하지만 처음부터 Opacity 값을 조절하는 방법으로 모자이크를 만들려고 했었기 때문에 비록 부족하긴 해도 처음 계획 했던대로 결과가 나와서 만족스럽고, gd 라이브러리를 사용하면서 gd 함수 사용법에 대해 많이 공부할 수 있었다. 그리고 중복사진들을 빼지 않은 이유는 모자이크를 만들 때 사진이 부족해서 가져오지 못하면 gd 라이브러리가 오류를 내 버리기 때문에 결과 이미지가 제대로 나올 수 있도록 중복된 사진들 까지도 포함시켰다. 물론 친구들의 사진을 많이 가져와서 중복된 것을 지울 수도 있었지만 그럴 경우 사진을 가져오는 시간이 너무 오래걸리는 문제점이 있었다.

제일 크게 아쉬운점은 사람들에게 이 앱을 서비스 하지 못한다는 것이다. 호스팅에 올리려고 하루종일 찾아봤는데 결국 ‘imagecreatefromjpeg’를 할 때 웹주소를 가져오는게 허용 되는 호스팅 업체가 없어서 apmsetup으로 할 수 밖에 없었다.

나중에 시간이 난다면 히스토그램 값을 가져오는 자바스크립트를 사용해서 포토 모자이크를 제대로 만들어 보고 싶고, 호스팅에 올려서 서비스 할 수 있는 방법도 찾아보아야겠다.



댓글