--- a/ide.ergonomics/nbproject/project.properties Wed Mar 11 15:53:12 2009 +0100 +++ a/ide.ergonomics/nbproject/project.properties Wed Mar 11 19:00:40 2009 +0100 @@ -5,7 +5,7 @@ release.dir=${basedir}/build/release src-ant.build=build/antclasses/ -src-ant.cp=${ant.core.lib}:${openide.util.dir}/lib/org-openide-util.jar +src-ant.cp=${ant.core.lib} test.config.commit.includes=\ org/netbeans/modules/ide/ergonomics/DynamicVerifyTest.class --- a/ide.ergonomics/src-ant/org/netbeans/modules/ide/ergonomics/ant/IconResource.java Wed Mar 11 15:53:12 2009 +0100 +++ a/ide.ergonomics/src-ant/org/netbeans/modules/ide/ergonomics/ant/IconResource.java Wed Mar 11 19:00:40 2009 +0100 @@ -39,7 +39,6 @@ package org.netbeans.modules.ide.ergonomics.ant; -import java.awt.Image; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -47,7 +46,6 @@ import java.io.InputStream; import javax.imageio.ImageIO; import org.apache.tools.ant.types.Resource; -import org.openide.util.ImageUtilities; /** * @@ -74,12 +72,30 @@ if (img == null) { return r.getInputStream(); } - Image merge = ImageUtilities.mergeImages(img, badgeIcon, 0, 0); + BufferedImage merge = merge(img, badgeIcon); ByteArrayOutputStream os = new ByteArrayOutputStream(); - ImageIO.write((BufferedImage)merge, "png", os); + ImageIO.write(merge, "png", os); return new ByteArrayInputStream(os.toByteArray()); } catch (IOException ex) { return r.getInputStream(); } } + + static BufferedImage merge(BufferedImage img1, BufferedImage img2) { + int w = Math.max(img1.getWidth(), img2.getWidth()); + int h = Math.max(img1.getHeight(), img2.getHeight()); + + BufferedImage result = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); + + for (int i = 0; i < w; i++) { + for (int j = 0; j < h; j++) { + int color = i < img2.getWidth() && j < img2.getHeight() ? img2.getRGB(i, j) : 0; + if (color == 0 || color == 0xffffff) { // how find out that an image pixel is "empty"? + color = i < img1.getWidth() && j < img1.getHeight() ? img1.getRGB(i, j) : 0; + } + result.setRGB(i, j, color); + } + } + return result; + } }