2012-10-12 31 views
6

tôi phải cắt một bitmap image.For này tôi đang sử dụngBitmap.createBitmap (nguồn Bitmap, int x, int y, int width, int height) trả sai bitmap

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565); 
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100); 
bitmap.recycle(); 
Canvas canvas = new Canvas(result); 
imgView.draw(canvas); 

Nhưng nó cắt đáy và bên phải của bitmap.Top và phần còn lại của bitmap tồn tại trong đầu ra. Điều đó có nghĩa là vị trí x và y không có hiệu lực.

Tôi đã tìm kiếm tài liệu hay. Nhưng tôi không thể.

Cảm ơn bạn đã nâng cao

Sự cố ở đây là gì và cách giải quyết?

Trả lời

10

Về cơ bản, vấn đề của bạn nảy sinh khi bạn tạo một bitmap. Bạn không đặt bất cứ thứ gì trong đó. Sau đó bạn tạo một bitmap nhỏ hơn và sau đó bạn render một imageView vào bitmap nhỏ hơn đó.

Điều này cắt giảm 100 pixel dưới cùng và phải 20 pixel.

Bạn cần tạo bitmap lớn. Thêm dữ liệu hình ảnh vào bitmap đó. Sau đó thay đổi kích thước nó.

Các mã sau đây nên làm việc:

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565); 
Canvas canvas = new Canvas(bitmap); 
imgView.draw(canvas); 
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100); 
bitmap.recycle(); 
+0

Cảm ơn you.It hoạt động tốt. –

+0

cảm ơn ông chủ. nó hoạt động tốt. – basheer

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