/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.seam.ui.pages.editor.print; import java.util.HashMap; import java.util.Map; import org.eclipse.draw2d.ColorConstants; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; public class PrintIconHelper { private static Map<Image,Image> iconCashe = new HashMap<Image,Image>(); 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; } public static Image getPrintImage(Image image) { return getPrintImage(image, ColorConstants.white); } }