2016-06-01 3 views
2

내 애플 리케이션에 사용자가 갤러리에서 이미지를 선택할 수있는 이미지 업로드 모듈이 있습니다. 문제는 이미지의 크기가 최대 10MB가 될 수 있다는 것입니다. 어느 것이 큰지, 업로드하기 전에 이러한 이미지에 압축 기술을 적용하고 싶습니다.안드로이드에 업로드하기 전에 이미지 압축

저는 인터넷에 대한 조사를 몇 가지했는데 이미지를 쉽게 최적화 할 수있는 ImgMin과 같은 ImageMagick과 같은 라이브러리를 발견했습니다. 백엔드 서버를 사용하지 않고 내 안드로이드 프로젝트에서 사용할 수있는 방법이 있습니까?

참고 :

ImgMin https://github.com/rflynn/imgmin

ImageMagick를 http://www.imagemagick.org/script/index.php

+0

이 방법으로 시도 했습니까? 이미지를 'Base64'형식으로 변환하십시오. 그럼 당신은 문자열을 얻을 것이다. String이 너무 큰 경우 예를 들어 20MB 분할 문자열을 부분에 업로드하고 업로드합니다. 원하는 경우 Base64 코드를 제공 할 수 있습니다. –

+0

이미 S3 sdk를 사용하여 이미지를 업로드하고 있으며 자동으로 청크를 관리합니다. 문제는 카메라에서 찍은 이미지가 큰 크기까지 올라갈 수 있으며 결국에는 내가 원하지 않는 많은 쓸모없는 데이터를 포함한다는 것입니다. ImgMin (위에서 언급 한대로)은 구현하고자하는 정확한 기술을 사용합니다. –

답변

1

쉬운 옵션을 시도 할 수는 Bitmap 클래스 this 방법이다.

비트 맵의 ​​압축 형식을 선택하고 품질 또는 파일 크기를 최적화 할 수 있습니다. 단점은 압축을 시작하기 위해 Bitmap 인스턴스를 가져와야한다는 것입니다.이 작업은 원하지 않는 작업 일 수 있습니다.

+0

바로 가기! 비트 맵 변환은 또한 이미지 품질에 상당한 손실을 가져 오며, 이는 제공하는 크기 압축과 협상 할 수 없습니다. –

+1

@SouravChandra 독립 실행 형 클라이언트에 ImageMin을 사용하고 JNI 래퍼를 제공 할 수 있습니다. 슈퍼 할 간단한 일이 아니지만, 그것은 당신을위한 옵션이 될 수 있다고 생각합니다. 또 다른 한가지는 ImageMagick의 Java 인터페이스를 사용하는 것입니다. 게시 한 페이지에 링크가 있습니다. –

+0

예 형제 님, 방금이 일을 성취하기 위해 많은 노력을 기울였습니다. –

관련 문제