Tôi muốn giải mã hình ảnh từ thẻ SD bằng BitmapFactory.decodeFile (đường dẫn, tùy chọn).
Tôi cũng muốn hình ảnh lớn hơn 2048x2048 pixel được chia tỷ lệ xuống tối đa 2048x2048 (duy trì tỷ lệ).
Tôi có thể thực hiện việc này theo cách thủ công sau khi nhận bitmap, nhưng điều đó sẽ yêu cầu phân bổ một lượng lớn byte ngoài những byte đã được phân bổ.
Tôi nên thiết lập đối tượng BitmapFactory.Options của mình để nhận được hiệu ứng đó như thế nào?
Cảm ơnAndroid cách chia tỷ lệ hình ảnh với Tùy chọn BitmapFactory
Trả lời
Sử dụng BitmapFactory.Options.inSampleSize khi bạn tải hình ảnh của mình lần đầu tiên để có kích thước gần nhất có thể với kích thước mục tiêu, sau đó sử dụng Bitmap.createScaledBitmap
để chia tỷ lệ với kích thước chính xác bạn muốn.
Có một số mã cho số này trong this answer.
Bạn có thể thử một cái gì đó như thế này:
int imageWidth, imageHeight;
Bitmap result = Bitmap.createScaledBitmap(bitmapPicture,
imageWidth, imageHeight, false);
Ở đây bạn có thể thêm chiều rộng và chiều cao của riêng bạn. bitmapPicture
là đối tượng của Bitmap
. Hãy cho tôi biết nếu điều này có bất kỳ trợ giúp nào cho bạn.
Bắt đầu bằng cách đặt inJustDecodeBounds
thành true
trong Options
, điều này sẽ cung cấp cho bạn kích thước của hình ảnh mà không tải bất kỳ dữ liệu hình ảnh nào.
Nếu kích thước hình ảnh nhỏ hơn kích thước tối đa của bạn, thì chỉ cần tải nó như bình thường.
Nếu mặt khác, nó quá lớn, hãy sử dụng inSampleSize
để đọc bitmap nhỏ hơn.
Lưu ý: Tôi không nghĩ rằng quá trình giải mã sẽ lọc khi sử dụng inSampleSize, vì vậy bạn có thể mất một số chi tiết, nhưng kích thước hình ảnh của bạn quá lớn (2048 px). gây ra bất kỳ vấn đề nào.
- 1. Tỷ lệ chia tỷ lệ trong hình ảnh Android?
- 2. Tỷ lệ màn hình chia tỷ lệ canvas của Android
- 3. image Chia tỷ lệ hình ảnh hộp
- 4. Tỷ lệ hình ảnh theo tỷ lệ
- 5. chia tỷ lệ hình ảnh, nhưng giữ tỷ lệ của hình ảnh
- 6. Chia tỷ lệ hình ảnh theo tỷ lệ trong CSS với chiều rộng tối đa
- 7. Chia tỷ lệ hình ảnh được lưu trữ tại S3
- 8. Chia tỷ lệ hình ảnh và xoay trong C/C++
- 9. hình ảnh động android xem hình ảnh tỷ lệ
- 10. Hoạt hình dịch và chia tỷ lệ xem trong Android
- 11. chia tỷ lệ hình ảnh trên cử chỉ chụm
- 12. Phân chia và chia tỷ lệ hình ảnh và hình ảnh
- 13. Tạo hình ảnh được chia tỷ lệ từ NSView
- 14. Tỷ lệ hình ảnh UISegmentedControl
- 15. iTextSharp Chia tỷ lệ hình ảnh thành trang đầy đủ
- 16. Thư viện chia tỷ lệ hình ảnh tốt nhất
- 17. QGraphicsXem cuộn và chia tỷ lệ hình ảnh
- 18. CGAffineTransform và chia tỷ lệ thành tâm của hình ảnh
- 19. Hoạt ảnh UIVIew - Chia tỷ lệ + Dịch
- 20. Lỗi PaperClip NotIdentifiedByImageMagickError khi chia tỷ lệ hình ảnh
- 21. Chất lượng chia tỷ lệ hình ảnh Adobe Flex
- 22. Nhân viên web và chia tỷ lệ hình ảnh
- 23. Cách chia tỷ lệ trò chơi trên Android
- 24. Tỷ lệ hình ảnh theo tỷ lệ tùy theo kích thước div gốc
- 25. Chia tỷ lệ trình duyệt của Android?
- 26. Cách chia tỷ lệ trục trong mplot3d
- 27. Làm cách nào để chia tỷ lệ hình ảnh thành toàn màn hình bằng JavaScript?
- 28. Tỷ lệ màn hình Android
- 29. Tự động chia tỷ lệ hình ảnh theo kích thước với (Py) GTK
- 30. Chia tỷ lệ Drupal
Như tôi đã nói, tôi đang cố gắng tránh phải phân bổ 2048x2048 pixel khác, nhưng có BitmapFactory thực hiện việc này tự động vì tôi rất thiếu bộ nhớ. Phương pháp của bạn chỉ phân bổ một bitmap mới mà không phải là những gì tôi muốn. Cảm ơn vì lời đáp sâu sắc. – saarraz1