2011-08-05 1 views
6

ビットマップの左側の10行すべてを白く設定するにはどうすればよいですか? 私は左に詰め込まれなければならないビットマップを持っています。私は、新しいビットマップを返すより新しいもの(白または色)上の各位置とセットピクセルの古いgetpixelで新しいイメージを作成することができると思った...これは間違っていますか? 提案がありますか?どうもありがとう!Android:パディングは白色のビットマップを残しました

答えて

0

あなたはここで見たいと思うかもしれません:あなたが使用することをお勧めします

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

方法は以下のとおりです。のgetHeight()あなたが10以上の列

とSetRGBはを設定し、反復するためにどのように多くのピクセルを知っています(int x、int y、int RGB)ピクセルを設定する

+0

これは、Android上で動作していますか?私はBitmap(アンドロイドクラス)の画像を持っていますが、BufferedImageに切り替えるには?ありがとう! – Jed84

16

余分なパディング数のピクセルで新しいビットマップを作成できます。 これをキャンバスビットマップとして設定し、必要な色でイメージ全体を色付けし、ビットマップをコピーします。

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

完璧!ありがとうございました。もう1つ質問あります。xオフセットは、最初のピクセルがパディング後に残っていることを意味しますか? – Jed84

+0

画像を伸ばさずに上下に空白を追加することで、この画像(w256、h128)を作ることができるようになりました(w256、h104)。 – Pierre

+0

いいですが、ビットマップの上部と左側にのみピクセルを追加します。 4つの側面すべて(上、左、右、下)には何も見つかりませんでした。 –

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; 
} 
関連する問題