jump to navigation

Sử dụng ExifInterface, và cách giải quyết vấn đề khi sử dụng với android 1.6 09/09/2011

Posted by hnb1988 in Android Development.
Tags: , , , , ,
trackback

ExifInterface là một lớp hỗ trợ xử lý một vài thuộc tính trong việc xử hình ảnh. Nhưng nó chỉ support trên android 2.2 trở lên (API Level 5)

Ví dụ trên android, khi bạn chụp một tấm hình từ camera và load lên GUI, ở đa số phone bạn chụp hình đứng nhưng khi lưu ảnh được lưu dưới dạng ngang. Khi load ảnh lên view thì ảnh cũng bị quay ngang. Do dó ExifInterface giúp bạn kiểm tra được ảnh ban đầu được chụp như thế nào,…

Với ExifInterface bạn có thể dễ dàng kiểm tra:

ExifInterface exif = new ExifInterface(SourceFileName); //Since API Level 5

String exifOrientation = exif.getAttribute(ExifInterface.TAG_ORIENTATION);

Tùy ảnh được chụp theo hướng nào, kết quả exifOrientation cho bạn giá trị khác nhau.

Nhưng vấn đề xảy ra nếu bạn dùng android 1.6 chẳng hạn thì bạn giải quyết làm sao khi không support được lớp ExifInterface 

Không phải lo lắng, có một thư viện khác giúp bạn được điều này. Thư viện metadata extraction library by Drew Noakes.
drewnoakes.com – jpeg exif / iptc metadata extraction in java

Sau khi bạn down thư viện về, bạn cần custom lại một tí để không bị lỗi. Nếu hơi khó khăn bạn có thể download link bên dưới. Mình đã custom lại để chạy được và rút gọn những phần không phù hợp để nhẹ hơn.

Khi sử dụng, ví dụ cũng như ví dụ trên với thư viện này bạn có thể làm như sau:

Metadata metadata;

metadata = JpegMetadataReader.read

Metadata(new File(filePath));

Directory exifDirectory = metadata.getDirectory(ExifDirectory.class);

if (exifDirectory.containsTag(ExifDirectory.TAG_ORIENTATION)) {

int rotated = exifDirectory .getInt(ExifDirectory.TAG_ORIENTATION);

}

Còn vấn đề gì, bạn có thể post lên để cùng thảo luận.
Các bạn có thể download link thư viện bên dưới:
khoinguonit.com – metadata.jar

Comments»

No comments yet — be the first.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: