2012-01-11 2 views
1

ImagePickerViewController를 사용하여 사진을 찍거나 기존 사진을 프로필 페이지에 사용하는 앱의 일부를 작업하고 있습니다. 나는 그림의 해상도 (모든 JPEGs)를 480x320으로 줄이고 압축하는 것보다 좋습니다. 문제는 해상도를 줄이고 압축해야하는 사진을 결정할 방법이 없다는 것입니다.iOS 이미지 압축 알고리즘 - 어떻게 만들 것입니까?

이제는 480x320보다 크고 그림의 압축 수준을 조정하여 크기가 약 30-50KB가되도록 그림의 해상도를 줄이는 알고리즘을 작성하고 싶습니다. 압축 수준은 그림의 크기에 따라 달라 지므로 30-50KB 미만의 압축은 압축되지 않으며 30-50KB의 압축에는 압축 수준이 더 높습니다.

어떻게 처리 할 알고리즘을 작성합니까?

답변

2

시행 착오를 거쳐 이미지를 480x320 크기로 조정 한 다음 JPEG로 저장합니다 (예 : 95 % 품질). 파일 크기를 확인하고 너무 큰 경우 90 %에서 다시 시도하십시오. 올바른 범위에 도달 할 때까지 반복하십시오.

이 작업은 비교적 느려질 수 있습니다 (몇 초?). 따라서 백그라운드 스레드에서이 작업을 수행하십시오.

+0

동의. 그것은 catch-22입니다. 압축은 고정 비율만큼 감소하지 않습니다. 이는 데이터의 가변성과 같은 많은 것을 기반으로합니다. 당신은 압축이 끝날 때까지 당신이 그것에서 얼마만큼 떨어져 있었는지 알 수 없을 것입니다. 시행 착오 만이 유일한 접근 방법입니다. – Steve

관련 문제