에루샤
erusya
Back-end Developer
Web Geek
Anime Otaku
에루샤 프로필 이미지
개발

php 이미지 검열 구현 2 (픽셀 모자이크)

29 views as of .
php 이미지 검열 구현 (가우시안 블러) | 에루라보
php 이미지 검열 구현 (가우시안 블러) | 에루라보
우리가 웹사이트를 운영하다가보면 필요에 따라 이미지를 검열할 방법이 필요하다. 일반적으로 문제가 되는 이미지면 안보이게하거나 감추면 그만인데, 사이트 성향에 따라서는 직접적으로 노출만안되면 되는 경우도...
https://erulabo.com/253

위의 이전 글에서 나는 가우시안 블러 필터와 흑백처리를 통해 검열 이미지를 생성하는법을 제안했었다.

어느정도의 검열되야하는 이미지에서는 적당히 뭉개지기는 하는데, 이게 사람의 상상력이란 그 흐린 곳에서도 어느정도 추측을 하기때문에 더 검열이 필요하다고 생각이 문득 들게되었다.

그래서 처음에는 아래처럼 블러를 더 반복적으로 적용하고 이미지를 다운스케일링 -> 업스케일링을 함으로써 이미지 열화가 일어나게 유도하고 흑백처리까지 하는등의 여러 시도를 해보았다.

for ($i = 0; $i < 20; $i++) {
    imagefilter($tmpLowResImage, IMG_FILTER_GAUSSIAN_BLUR);
}Copy

하지만 필요이상으로 필터를 돌리면 연산량도 나름 늘어나게 되고 너무 블러로 열화시키자니 원본이미지가 뭔지도 모를정도로 열화가되어서 차라리 이정도면 검열 이미지는 공용 대체 이미지를 넣는게 맞는거같은 수준으로 뭉개지기도 했다.
보기에도 안좋고 말이다.

그래서 웹을 통해 이미지 검열처리를 어떻게 하나 알아보다가 블러가 아닌 '모자이크'처리로 이를 처리하는게 서양권 문화에는 있다는걸 알게되었다.

찾아보니 php gd에도 '픽셀 모자이크화'라는 필터가 있는걸 알게되었고 이를 기존에 블러효과와 섞어서 아래처럼 적용해 보았다.

// 블러 처리
for ($i = 0; $i < 5; $i++) {
    imagefilter($tmpLowResImage, IMG_FILTER_GAUSSIAN_BLUR);
}
// 픽셀 모자이크 처리
imagefilter($tmpLowResImage, IMG_FILTER_PIXELATE, 7, true);
// 흑백 처리
imagefilter($tmpLowResImage, IMG_FILTER_GRAYSCALE);Copy

이 코드를 이용하면 아래처럼 이미지가 모자이크화 되어 출력이된다.

본문 이미지가우시안 블러 10회
본문 이미지가우시안 블러 5회 + 픽셀 모자이크 7 + 흑백 처리

훨씬 원래이미지를 알아보기 힘들정도로 검열이미지가 생성됨을 알 수 있다.
끝!

#php
0 개의 댓글
×