안녕하세요. 이번시간에는 WPF를 사용해서 간단하게 PhotoMosaic을 구현 해보도록 하겠습니다. 아래는 시연 동영상이며, 화면이 작아 잘안 보이시는 분들을 위해 설명을 드리자면 모자이크를 만들고자 하는 원본 이미지를 불러오고 모자이크에 사용하고자 하는 이미지의 검색어를 입력한뒤 Make버튼을 누르게 되면 Flickr에서 검색어에 해당하는 이미지를 불러와 원본이미지와 함성해주는 내용입니다.
결과를 자세히 살펴보면 다음과 같습니다. (허락 없이 올린 여자친구 사진인데.. 혼나면 어떡하지.............. -_-)
아래는 PhotoMosaic을 구현하는데 사용한 소스코드이며 코드에 대한 설명은 주석으로 달아놓았습니다!!
간단하게 요약하자면 DrawingImage를 사용해 원본이미지를 가장 먼저 그리고 Flickr에서 검색된 이미지들을 랜덤하게 그려주는 과정을 수행합니다. 이때 Flickr에서 검색된 Tile Image의 Opacity를 낮춰 배경이 비치도록 만들어 마치 여러장의 이미지들이 하나의 이미지를 이루는것과 같은 효과를 냅니다.
위 코드에서 가장 중요한 부분은 Flickr에서 이미지를 불러올때 CacheOption을 사용하여 이미지가 재사용될때 빠르게 응답할 수 있도록 하는 부분에 있습니다. (CacheOption을 사용하지 않으면 저장할때 엄청난 시간이 소요될 수 있습니다..)
실제 사용하실 때에는 아래와 같이 간단히 객체를 생성한뒤 Source Image를 지정하고 Tile의 Scale을 지정한 뒤 Make함수를 호출하시면 되겠습니다.
아래는 이번시간에 사용된 전체소스코드이며 기타 질문이나 요청 문의 등은 이메일 또는 리플로 남겨주시면 답변드리겠습니다 ^^
PS. 반드시 사용전에 Flickr API Key를 본인의 Key로 변경하신 뒤 사용하세요~ 안그러면 에러납니다요~

PhotoMosaicSample.zip
