Skip to main content

draw rectangle on a picture from pixels coordinates



with the following code i can draw a rectangle on my bitmap image.







Paint paint = new Paint();

paint.setStyle(Style.STROKE);

paint.setColor(Color.BLUE);

publishProgress(80);

Canvas canvas = new Canvas(mBitmap);

publishProgress(85);

canvas.drawRect(200, 100, 200, 100, paint);

bitmap.recycle();

channel.close();







i've read that the values given in canvas.drawRect(200, 100, 200, 100, paint); represent respectively left x, top y, right x and bottom y. So my questions are :





  • are those values in pixels? ppi or what??







  • how can i draw a rectangle on my image if i have only the coordinates of each corners in pixels as shown on the picture below ? assuming that i have A (x, y) B (x, y), C(x, y) and D(x, y) with x and y expressed in pixels from the axes of the picture below. NB: i don't have control on A,B,C,D they are given to me from a web service





    rectangle i want to draw






Comments

  1. I don't think you have a problem here, you would just do this:

    canvas.drawRect(a.getX(), a.getY(), c.getX(), c.getY(), paint);

    Yes the values are in pixels however your origin (0,0) is the top left of the canvas normally. Y value becomes more positive as you move down the canvas.

    ReplyDelete

Post a Comment

Popular posts from this blog

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.