Подтвердить что ты не робот

Вырезать часть растрового изображения

Возможный дубликат:
Как обрезать проанализированное изображение в android?

Я выбрал часть из растрового изображения, и я копирую выбранную часть в одно и то же растровое изображение. Теперь я хочу удалить выбранную часть после копирования. Как это сделать? пожалуйста, помогите мне.

4b9b3361

Ответ 1

Самый простой способ, который я знаю, - использовать обработку режима XFer из пакета Graphics. Функция ниже разрезает область, начиная с (30,30) до (100,100) до изображения 320x480, загруженного из ресурсов. Адаптировать координаты для динамического изменения:

private Bitmap cropBitmap1() {
    Bitmap bmp2 = BitmapFactory.decodeResource(this.getResources(), R.drawable.image1); 
    Bitmap bmOverlay = Bitmap.createBitmap(320, 480, Bitmap.Config.ARGB_8888);

    Paint paint = new Paint();
    paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));

    Canvas canvas = new Canvas(bmOverlay); 
    canvas.drawBitmap(bmp2, 0, 0, null); 
    canvas.drawRect(30, 30, 100, 100, paint);

    return bmOverlay;
}

Ответ 2

На всякий случай кто-то пытается решить ту же проблему, есть лучшее решение: Bitmap.createBitmap(Bitmap, int x, int y, int width, int height). Например, если вам нужно обрезать 10 пикселей с каждой стороны растрового изображения, то используйте это:

Bitmap croppedBitmap = Bitmap.createBitmap(originalBitmap, 10, 10, originalBitmap.getWidth() - 20, originalBitmap.getHeight() - 20);