From ff4b036c6ad8b7a7cde0ba5f270b412b7bb22038 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Wed, 24 Aug 2011 14:23:05 +0800 Subject: [PATCH] Fix accessory face mixing --- src/main/java/org/dynmap/PlayerFaces.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/dynmap/PlayerFaces.java b/src/main/java/org/dynmap/PlayerFaces.java index ef66d128..470d1038 100644 --- a/src/main/java/org/dynmap/PlayerFaces.java +++ b/src/main/java/org/dynmap/PlayerFaces.java @@ -56,12 +56,16 @@ public class PlayerFaces { int[] faceaccessory = new int[64]; /* 8x8 of face accessory */ /* Get buffered image for face at 8x8 */ DynmapBufferedImage face8x8 = DynmapBufferedImage.allocateBufferedImage(8, 8); + int[] bgcolor = new int[1]; + img.getRGB(0, 0, 1, 1, bgcolor, 0, 1); /* Get BG color (for accessory face) */ img.getRGB(8, 8, 8, 8, face8x8.argb_buf, 0, 8); /* Read face from image */ img.getRGB(40, 8, 8, 8, faceaccessory, 0, 8); /* Read face accessory from image */ /* Apply accessory to face: first element is transparency color so only ones not matching it */ for(int i = 0; i < 64; i++) { - if(faceaccessory[i] != faceaccessory[0]) + if(faceaccessory[i] != bgcolor[0]) face8x8.argb_buf[i] = faceaccessory[i]; + else if(face8x8.argb_buf[i] == bgcolor[0]) + face8x8.argb_buf[i] = 0; } /* Write 8x8 file */ File img_8x8 = new File(faces8x8dir, playername + ".png");