Hint

 public SImage drawX( SImage oldPic )
     {
         int [][] pixels = oldPic.getPixelArray();
         int width=pixels.length;
         int height=pixels[0].length;
         double slope=(double)height/width;
         int x=0;
         while (x< width){
             int y=(int)Math.round(x*slope);
             pixels[x][y]=0;
             x++;            
          }
      // you still need to implement the other diagonal
      // by symmetry, you can just add to the 
      // loop above.  For example, if you have a 100 x 100 grid
      //    if (2,2) is a point, then (97,2) is another.....
      //    so is (2, 97).. just make a new y from adapting x
      //    be careful of OBOE's.. the width is 100, but the last pixel is 99

         return new SImage(pixels);
     }

A full explanation of using slope can be found at http://www.cs.unc.edu/~mcmillan/comp136/Lecture6/Lines.html