You can load an image, then load another image to use as a mask for it, which may give you the result you're looking for. The mask image shoule be black and white, and I think white is solid, black is transparent, and everything in between works as expected.
 Code:PImage img;
PImage imgMask;
void setup()
{
  size(400,400,P3D);
  img=loadImage("MyImage.gif");
  imgMask=loadImage("MyImageMask.gif");
  img.mask(imgMask);
} 
Or, if you're looking to do complex shapes at runtime, you coudl use the image as a texture on a polygon, and by setting the texture co-ordinates, only show ther parts of the image you want. 
Code:PImage img;
void setup()
{
  size(400,400,P3D);
  img=loadImage("MyImage.gif");
}
void draw()
{
  background(0);
  // ... other code ...
  beginShape(POLYGON);
  texture(img);
  // only the 20 pixel border of the image not used 
  // (assuming it's 100x100) except a bit near the bottom.. 
  // try it and see..
  vertex(20,20,20,20); // x,y imageX, imageY
  vertex(80,20,80,20);
  vertex(80,80,80,80);
  vertex(50,90,50,90);
  vertex(20,80,20,80);
  endShape();
}