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();
}