2012-03-17 47 views
9

Tôi muốn cắt phần Đỏ từ hình ảnh sau đây, Có phương pháp đơn giản nào có sẵn trong Android có thể cắt hình ảnh sau không.Cắt một phần hình ảnh cụ thể trong android

Sample Image that i want to crop

Tôi đã tìm thấy nhiều SO câu hỏi nhưng tất cả đều gợi ý để sử dụng đoạn mã sau:

Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100); 

việc Mã này tốt nếu chiều rộng & chiều cao khoảng độ phân giải 2MP, nhưng nếu điều đó cắt một phần là độ phân giải hơn 3MP so với ứng dụng đã bị lỗi với lỗi OOM.

Có cách nào xử lý hình ảnh nhiều hơn 3MP trong khi cắt không?

Trả lời

6

Bạn có thể sử dụng mã sau có thể khắc phục sự cố của mình.

Matrix matrix = new Matrix(); 
matrix.postScale(0.5f, 0.5f); 
Bitmap croppedBitmap = Bitmap.createBitmap(bitmapOriginal, 100, 100,100, 100, matrix, true); 

Phương thức trên làm bài đăngKéo hình ảnh trước khi cắt, vì vậy bạn có thể nhận được kết quả tốt nhất với hình ảnh bị cắt mà không gặp lỗi OOM.

Để cụ thể hơn, bạn có thể tham khảo this blog

+0

việc sử dụng postScale là gì? – Swapnil

2
+3

Liên kết này hữu ích nếu tôi không muốn sử dụng logic của mình để cắt xén, nhưng trong trường hợp của tôi, tôi không muốn chuyển hướng người dùng sang màn hình khác chỉ để cắt xén hình ảnh. –

+1

tham khảo http://coderzheaven.com/2011/03/crop-an-image-in-android/ này – Aerrow

1

1- Thay đổi ImageView của bạn cho bitmap

final Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.img); 

2- sử dụng bitmap của bạn để cắt những gì bạn muốn

Bitmap croppedBmp = Bitmap.createBitmap(bitmap, x, y , width , height); 

3-Chăm sóc x, y từ trên và trái

4 đến xem trước bitmap của bạn một lần nữa trong ImageView

imageView.setImageBitmap(croppedBmp); 
0

của bạn Nếu bạn muốn cắt hình ảnh trong bất kỳ hình dạng hoặc chỉ chọn một phần sau đó bạn có thể sử dụng sẵn sàng open source library

Các vấn đề liên quan