2011-08-05 38 views
6

Làm thế nào để thiết lập tất cả trắng 10 hàng ở phía bên trái của một Bitmap? Tôi có một bản đồ bitmap phải được đệm ở bên trái. Tôi nghĩ rằng tôi có thể tạo ra một hình ảnh mới lặp trên một getpixel cũ cho mỗi vị trí và setpixel trên một mới (trắng hoặc màu) hơn trả lại bitmap mới ... là sai? Bất kỳ đề xuất nào? cảm ơn rất nhiều!Android: padding để lại một bitmap với màu trắng

Trả lời

0

Bạn có thể muốn xem ở đây:

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html

phương pháp bạn có thể muốn sử dụng là: getHeight() sau đó bạn biết có bao nhiêu pixel để thiết lập và lặp hơn 10 cột

và setRGB (int x, int y, int RGB) để đặt pixel

+0

hoạt động trên Android? i'v có một hình ảnh bitmap (android class) ..hoặc để chuyển sang BufferedImage? cảm ơn! – Jed84

16

Thay vào đó, bạn có thể tạo Bitmap mới với số pixel bổ sung. Đặt làm bitmap canvas và tô màu toàn bộ hình ảnh với màu được yêu cầu và sau đó sao chép bitmap của bạn.

public Bitmap pad(Bitmap Src, int padding_x, int padding_y) { 
    Bitmap outputimage = Bitmap.createBitmap(Src.getWidth() + padding_x,Src.getHeight() + padding_y, Bitmap.Config.ARGB_8888); 
    Canvas can = new Canvas(outputimage); 
    can.drawARGB(FF,FF,FF,FF); //This represents White color 
    can.drawBitmap(Src, padding_x, padding_y, null); 
    return outputimage; 
} 
+0

Hoàn hảo! thanks..just một câu hỏi ... cho x-bù đắp bạn có nghĩa là điểm ảnh đầu tiên còn lại sau khi đệm? – Jed84

+0

Cho phép nói rằng tôi có một bitmap với dimentions (w256, h104), wil này có thể làm cho hình ảnh này (w256, h128) bằng cách thêm các khoảng trắng trên đầu và dưới đồng đều mà không kéo dài hình ảnh? – Pierre

+0

Rất đẹp nhưng nó chỉ thêm các pixel vào đầu và bên trái của bitmap. không tìm thấy gì cho tất cả 4 bên (trên cùng, bên trái, bên phải, phía dưới). –

0
public Bitmap addPaddingTopForBitmap(Bitmap bitmap, int paddingTop) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight() + paddingTop, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, 0, paddingTop, null); 
    return outputBitmap; 
} 

public Bitmap addPaddingBottomForBitmap(Bitmap bitmap, int paddingBottom) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight() + paddingBottom, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, 0, 0, null); 
    return outputBitmap; 
} 


public Bitmap addPaddingRightForBitmap(Bitmap bitmap, int paddingRight) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth() + paddingRight, bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, 0, 0, null); 
    return outputBitmap; 
} 

public Bitmap addPaddingLeftForBitmap(Bitmap bitmap, int paddingLeft) { 
    Bitmap outputBitmap = Bitmap.createBitmap(bitmap.getWidth() + paddingLeft, bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(outputBitmap); 
    canvas.drawColor(Color.RED); 
    canvas.drawBitmap(bitmap, paddingLeft, 0, null); 
    return outputBitmap; 
} 
Các vấn đề liên quan