public void blit(int layer, BufferedImage src, int destx1, int desty1, int destx2, int desty2, int srcx1, int srcy1, int srcx2, int srcy2)
	{
		if (this.drawAreaLayers.get(layer) != null && src != null)
		{
			BufferedImage dest = this.drawAreaLayers.get(layer);

			dest.createGraphics().drawImage(src, destx1, desty1, destx2, desty2, srcx1, srcy1, srcx2, srcy2, null);

			WritableRaster raster = dest.getRaster();
			for (int j = desty1; j < desty2; j++)
			{
				for (int i = destx1; i < destx2; i++)
				{
					int [] pixels = raster.getPixel(i, j, (int[]) null);

					if (pixels[0] == 255 && pixels[1] == 0 && pixels[2] == 255) // magenta
					{
						pixels[3] = 0;
						raster.setPixel(i, j, pixels);
					}
				}
			}
		}
	}