public static Image getPrintImage(Image image, Color bgColor) { Image newImage = (Image) iconCashe.get(image); if (newImage == null) { ImageData imageData = image.getImageData(); ImageData imgData = (ImageData) imageData.clone(); ImageData mask = imgData.getTransparencyMask(); int bgPixelValue = imgData.palette.getPixel(bgColor.getRGB()); for (int x = 0; x < mask.width; x++) { for (int y = 0; y < mask.height; y++) { int pixelValue = mask.getPixel(x, y); if (pixelValue == 0) { imgData.setPixel(x, y, bgPixelValue); } } } imgData.maskData = null; newImage = new Image(null, imgData); iconCashe.put(image, newImage); } return newImage; }