int oldYPixPerUnit = getXPixPerUnitAsInt();
int oldYPixPerUnit = getYPixPerUnitAsInt();
	public BufferedImage heatMapSnapshot(org.apache.batik.transcoder.image.ImageTranscoder transcoder, int columnWidth, int rowWidth) {		int oldXPixPerUnit = getXPixPerUnitAsInt();		int oldYPixPerUnit = getXPixPerUnitAsInt();				setXPixPerUnit(columnWidth);		setYPixPerUnit(rowWidth);		updateSize();		int heatMapWidth = getXPixPerUnitAsInt() * nx;		int heatMapHeight = getYPixPerUnitAsInt() * ny;		sampleNamesDrawer.updateSize(heatMapWidth);		geneNamesDrawer.updateSize();		int totalWidth = heatMapWidth;		totalWidth += 100;		// for gene names		int totalHeight = heatMapHeight;		totalHeight += 100;		// for sample names		final BufferedImage image =transcoder.createImage(totalWidth, totalHeight); // new BufferedImage(totalWidth, totalHeight, BufferedImage.TYPE_INT_ARGB);				Graphics2D g = image.createGraphics();		g.setColor(Color.white);		g.fillRect(0, 0, image.getWidth(), image.getHeight());		g.setColor(Color.black);		g.setFont(new Font("monospaced", Font.PLAIN, getXPixPerUnitAsInt()));		java.awt.geom.AffineTransform temp = g.getTransform();		sampleNamesDrawer.draw(g, true); // changes transform		g.setTransform(temp);		g.translate(0, 100);		this.draw(g);		g.translate(heatMapWidth, 0);		g.setFont(new Font("monospaced", Font.PLAIN, getYPixPerUnitAsInt()));		g.setColor(Color.black);		geneNamesDrawer.draw(g);		g.dispose();				setXPixPerUnit(oldXPixPerUnit);		setYPixPerUnit(oldYPixPerUnit);		return image;	}