From ae6f8083f1d34326786a254a65e723c0ed37062e Mon Sep 17 00:00:00 2001 From: Matt Sarett Date: Thu, 3 Mar 2016 18:17:11 -0500 Subject: [PATCH 1/2] Fix bug reencoding 9patch pngs Fixes issue 1180. https://github.com/iBotPeaches/Apktool/issues/1180 --- .../brut/androlib/res/decoder/Res9patchStreamDecoder.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java index 22b0dd8f..17992b4e 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java @@ -39,10 +39,9 @@ public class Res9patchStreamDecoder implements ResStreamDecoder { BufferedImage im = ImageIO.read(new ByteArrayInputStream(data)); int w = im.getWidth(), h = im.getHeight(); - ImageTypeSpecifier its = ImageTypeSpecifier.createFromRenderedImage( im ); - BufferedImage im2 = its.createBufferedImage( w+2, h+2 ); + BufferedImage im2 = new BufferedImage( w+2, h+2, BufferedImage.TYPE_INT_ARGB ); + im2.createGraphics().drawImage( im, 1, 1, w, h, null ); - im2.getRaster().setRect(1, 1, im.getRaster()); NinePatch np = getNinePatch(data); drawHLine(im2, h + 1, np.padLeft + 1, w - np.padRight); drawVLine(im2, w + 1, np.padTop + 1, h - np.padBottom); @@ -139,4 +138,4 @@ public class Res9patchStreamDecoder implements ResStreamDecoder { yDivs); } } -} \ No newline at end of file +} From 4f5cc1b903ceaff67bb97092fd169582f60f1ea8 Mon Sep 17 00:00:00 2001 From: Matt Sarett Date: Fri, 4 Mar 2016 11:27:19 -0500 Subject: [PATCH 2/2] Removing spaces --- .../brut/androlib/res/decoder/Res9patchStreamDecoder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java index 17992b4e..9ce1be8a 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/Res9patchStreamDecoder.java @@ -39,8 +39,8 @@ public class Res9patchStreamDecoder implements ResStreamDecoder { BufferedImage im = ImageIO.read(new ByteArrayInputStream(data)); int w = im.getWidth(), h = im.getHeight(); - BufferedImage im2 = new BufferedImage( w+2, h+2, BufferedImage.TYPE_INT_ARGB ); - im2.createGraphics().drawImage( im, 1, 1, w, h, null ); + BufferedImage im2 = new BufferedImage(w+2, h+2, BufferedImage.TYPE_INT_ARGB); + im2.createGraphics().drawImage(im, 1, 1, w, h, null); NinePatch np = getNinePatch(data); drawHLine(im2, h + 1, np.padLeft + 1, w - np.padRight);