public synchronized BufferedImage getSample(int width, int height) {
		BufferedImage sample = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_ARGB);
		Graphics2D sampleEditor = sample.createGraphics();
		sampleEditor.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		sampleEditor.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
				RenderingHints.VALUE_INTERPOLATION_BILINEAR);
		sampleEditor.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,
				RenderingHints.VALUE_COLOR_RENDER_QUALITY);

		Point oldPoint = new Point(width / 10, height / 2);
		Point point = new Point(width / 10, height / 2);
		int i = 0;
		int formSize = (int) (int) (Math.pow(Math.log(Math.max(width, height)), this.ratioCircle));
		sampleEditor.setColor(new Color(0, 0, 0, 128));
		if (this.mouseStops) {
			switch (this.typeMS) {
			case circles:
				sampleEditor.fillOval(
						((int) (point.x - ((double) formSize / 2))),
						((int) (point.y - ((double) formSize / 2))), formSize,
						formSize);
				sampleEditor.setColor(this.colorTab[0]);
				formSize = (int) (Math.pow(Math.log(Math.max(width, height)), this.ratioDisk));
				sampleEditor.fillOval(
						((int) (point.x - ((double) formSize / 2))),
						((int) (point.y - ((double) formSize / 2))), formSize,
						formSize);
				break;
			case squares:
				sampleEditor.fillRect(point.x - (formSize / 2), point.y
						- (formSize / 2), formSize, formSize);
				sampleEditor.setColor(this.colorTab[0]);
				formSize = (int) (Math.pow(Math.log(Math.max(width, height)), this.ratioDisk));
				sampleEditor.fillRect(point.x - (formSize / 2), point.y
						- (formSize / 2), formSize, formSize);
				break;
			default:
				System.out.println("typeMouseStop : Shape not defined !");
				break;
			}
		}
		double quantum = (width - (width / 5))
				/ ((double) this.colorTab.length - 1);
		while (i < this.colorTab.length) {
			point.x = (int) ((width / 10) + (quantum * i));
			sampleEditor.setColor(this.colorTab[i]);
			sampleEditor.drawLine(oldPoint.x, oldPoint.y, point.x, point.y);
			oldPoint.x = point.x;
			i++;
		}
		sampleEditor.setColor(new Color(0, 0, 0, 128));
		formSize = (int) (Math.pow(Math.log(Math.max(width, height)), this.ratioCircle));
		if (this.mouseStops) {
			switch (this.typeMS) {
			case circles:
				sampleEditor.fillOval(
						((int) (point.x - ((double) formSize / 2))),
						((int) (point.y - ((double) formSize / 2))), formSize,
						formSize);
				sampleEditor.setColor(this.colorTab[i - 1]);
				formSize = (int) (Math.pow(Math.log(Math.max(width, height)), this.ratioDisk));
				sampleEditor.fillOval(
						((int) (point.x - ((double) formSize / 2))),
						((int) (point.y - ((double) formSize / 2))), formSize,
						formSize);
				break;
			case squares:
				sampleEditor.fillRect(
						((int) (point.x - ((double) formSize / 2))),
						((int) (point.y - ((double) formSize / 2))), formSize,
						formSize);
				sampleEditor.setColor(this.colorTab[i - 1]);
				formSize = (int) (Math.pow(Math.log(Math.max(width, height)), this.ratioDisk));
				sampleEditor.fillRect(
						((int) (point.x - ((double) formSize / 2))),
						((int) (point.y - ((double) formSize / 2))), formSize,
						formSize);
				break;
			default:
				System.out.println("typeMouseStop : Shape not defined !");
				break;
			}
		}
		return sample;
	}