public BufferedImage getImage() {
		synchronized (lock) {
			if (image == null) {
				image = new BufferedImage(ROW_LEN, this.bits.length, BufferedImage.TYPE_INT_ARGB);
				int color = this.color.getRGB();
				for (int r = 0; r < this.bits.length; ++r) {
					int bits = this.bits[r];
					for (int v = 0x1, c = 0; c < ROW_LEN; v <<= 1, ++c) {
						if ((bits & v) == v) {
							// BIT on
							image.setRGB(c, r, color);
						} else {
							// BIT off
							image.setRGB(c, r, transparent);
						}
					}
				}
			}
			return image;
		}
	}