2013-11-01 21 views
5

Xin chào cộng đồng StackOverflow. Tôi cần một số thông tin về các phương pháp có thể để chia bitmap thành các phần nhỏ hơn. Quan trọng hơn tôi sẽ cần một số tùy chọn để đánh giá. Tôi đã kiểm tra nhiều bài viết và tôi vẫn chưa hoàn toàn thuyết phục về việc phải làm gì.Cách chia bitmap thành các phần là bitmap quá

cut the portion of bitmap

How do I cut out the middle area of ​​the bitmap?

Hai liên kết một số tùy chọn tốt tôi tìm thấy, nhưng tôi không thể tính toán CPU và RAM chi phí của mỗi phương pháp, hoặc có lẽ tôi không nên bận tâm với tính toán này ở tất cả. Tuy nhiên nếu tôi chuẩn bị làm điều gì đó, tại sao không làm điều đó một cách tốt nhất ngay từ đầu.

Tôi sẽ biết ơn khi nhận được một số mẹo và liên kết về nén bitmap để có thể tôi có được hiệu suất tốt hơn kết hợp hai phương pháp.

Tôi cảm ơn bạn trước.

Trả lời

3

Bạn muốn chia bitmap thành nhiều phần. Tôi giả sử bạn muốn cắt các phần bằng nhau từ bitmap.say ví dụ bạn cần 4 phần bằng nhau từ một bitmap.

Đây là phương pháp đã thực hiện một bitmap lên 4 phần bằng nhau và có nó trong một mảng bitmap.

public Bitmap[] splitBitmap(Bitmap picture) 
{ 

Bitmap[] imgs = new Bitmap[4]; 
imgs[0] = Bitmap.createBitmap(picture, 0, 0, picture.getWidth()/2 , picture.getHeight()/2); 
imgs[1] = Bitmap.createBitmap(picture, picture.getWidth()/2, 0, picture.getWidth()/2, picture.getHeight()/2); 
imgs[2] = Bitmap.createBitmap(picture,0, picture.getHeight()/2, picture.getWidth()/2,picture.getHeight()/2); 
imgs[3] = Bitmap.createBitmap(picture, picture.getWidth()/2, picture.getHeight()/2, picture.getWidth()/2, picture.getHeight()/2); 

return imgs; 


} 
4

Chức năng này cho phép bạn chia bitmap thành số hàng và cột.

Ví dụ bitmap [] [] bitmaps = splitBitmap (bmp, 2, 1); Sẽ tạo một bitmap chia theo chiều dọc được lưu trữ trong một mảng hai chiều. 2 cột 1 hàng

Ví dụ bitmap [] [] bitmaps = splitBitmap (bmp, 2, 2); Sẽ chia một bitmap thành bốn bitmap được lưu trữ trong một mảng hai chiều. 2 cột 2 hàng

public Bitmap[][] splitBitmap(Bitmap bitmap, int xCount, int yCount) { 
    // Allocate a two dimensional array to hold the individual images. 
    Bitmap[][] bitmaps = new Bitmap[xCount][yCount]; 
    int width, height; 
    // Divide the original bitmap width by the desired vertical column count 
    width = bitmap.getWidth()/xCount; 
    // Divide the original bitmap height by the desired horizontal row count 
    height = bitmap.getHeight()/yCount; 
    // Loop the array and create bitmaps for each coordinate 
    for(int x = 0; x < xCount; ++x) { 
     for(int y = 0; y < yCount; ++y) { 
      // Create the sliced bitmap 
      bitmaps[x][y] = Bitmap.createBitmap(bitmap, x * width, y * height, width, height); 
     } 
    } 
    // Return the array 
    return bitmaps;  
} 
+1

Khi trả lời, bạn nên cố gắng giải thích thay vì chỉ cần đưa ra một đoạn mã. – ThP

+0

Vui lòng trả lời câu trả lời của bạn với một số văn bản tiết lộ những gì bạn doo trong tương lai. –

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