Android: отступы оставили растровое изображение с белым цветом - PullRequest
10 голосов
/ 05 августа 2011

Как установить все белые 10 строк на левой стороне растрового изображения?У меня есть растровое изображение, которое должно быть дополнено с левой стороны.Я думал, что смогу создать новое изображение, повторить старый getpixel для каждой позиции и установить новый пиксель (белый или цветной), чем вернуть новое растровое изображение ... это неправильно?Любое предложение?Большое спасибо!

Ответы [ 3 ]

23 голосов
/ 05 августа 2011

Вместо этого вы можете создать новое растровое изображение с дополнительным количеством пикселей.Установите это как растровое изображение холста и раскрасьте все изображение требуемым цветом, а затем скопируйте ваше растровое изображение.

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;
}
3 голосов
/ 19 мая 2017
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;
}
0 голосов
/ 05 августа 2011

Вы можете посмотреть здесь:

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

методов, которые вы, возможно, захотите использовать: getHeight (), тогда вы знаете, сколько пикселей нужно установить и выполнить итерацию по 10 столбцам

и setRGB (int x, int y, int RGB) для установки пикселя

...