android - Bitmap.getPixel crashes program -


i working on bitmap collisions in android studio (detecting when 2 images collide, not 2 rects) , wrote following method. first part of code-all of if statements- determine position of 2 intersecting rectangles , create rectangle made of overlap between intersecting rectangles. second part of code tries iterate through each pixel in newly created rectangle , determine whether transparent or not. however, in order this, use pic1.getpixel (pic1 , pic2 2 bitmaps valid images in them) program crashes every time try use getpixel. checked make sure first part of code works correctly , does. why happening?

 public boolean iscollision(rect r1, rect r2 ) {     if(r1.intersect(r2))     {         rect r3 = new rect(0,0,0,0);         if (r2.left < r1.right && r2.top < r1.bottom && r2.right > r1.right && r2.bottom > r1.bottom)         {             r3.set(r2.left, r2.top, r1.right, r1.bottom);         }         else if (r2.right > r1.left && r2.top < r1.bottom && r2.left < r1.left && r2.bottom > r1.bottom)         {             r3.set(r1.left, r2.top, r2.right, r1.bottom);         }         else if (r2.left < r1.right && r2.bottom > r1.top)         {             r3.set(r2.left, r1.top, r1.right, r2.bottom);         }         else if(r2.right > r1.left && r2.bottom > r1.top)         {             r3.set(r1.left, r1.top, r2.right, r2.bottom);         }         log.v("debugging", "made part overlapping rectangle creation");         (int = r3.left; i<r3.right; i++)         {             (int j = r3.top; j < r3.bottom; j++)             {                  /*log.v("debugging","pixel 1: " + integer.tostring(pic1.getpixel(i,j)));                 log.v("debugging","pixel 2: " + integer.tostring(pic2.getpixel(i,j)));                 log.v("debugging","transparent color: " + integer.tostring(color.transparent));*/                 if (pic1.getpixel(i,j) != color.transparent)                 {                     if (pic2.getpixel(i,j) != color.transparent)                     {                         return true;                     }                 }             }         }         log.v("debugging", "made past pixel search");     }     return false;  } 

i figured out, turns out x , y values, using position of pixel based on coordinate system of screen. however, getpixel, 0,0 point in upper right hand corner of image trying pixels for. therefore,the problem solved when did getpixel(i-rect.left,j-rect.top)


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -