0
votes

I've been searching here about cut bitmaps in android, however I could not make it work for me. I would like to cut off some part of one specific bitmap, but I want to do that starting from center to the bottom of my image.

I already tried to use:

createBitmap(android.graphics.Bitmap source, int x, int y, int width, int height)

However, it always start to cut my image from the TOP, even changing x and y values. I want to cut my bitmap as below blue square.

Changing x and y in createBitmap didnt work

Someone have any idea about how to cut my bitmap?

2

2 Answers

1
votes

You should take a look at this:

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

   Paint p = new Paint();
   p.setXfermode(new PorterDuffXfermode(Mode.CLEAR));              
   Canvas c = new Canvas(bmOverlay); 
   c.drawBitmap(bmp2, 0, 0, null); 
   c.drawRect(30, 30, 100, 100, p);

return bmOverlay;
}

Link: Source

0
votes

Try this:

Bitmap source = BitmapFactory.decodeResource(getResources(),
            R.drawable.ic_launcher);
    int width = source.getWidth();
    int height = source.getHeight();
    int required = 25;// 25 pixels width and height
    int startX = (width - required) / 2;
    int startY = (height - required) / 2;
    Bitmap resized = Bitmap.createBitmap(source, startX, startY, required,
            required);

The only relevant part is the startX and startY calculations. The code asumes that you need a 25*25 pixels image.