]> git.saurik.com Git - android/aapt.git/blobdiff - Images.cpp
auto import from //depot/cupcake/@137055
[android/aapt.git] / Images.cpp
index 4c776fb9b40d6e991e24ed828df7f153117458ab..edb12ea2010c94a45a250b9fb5281dc9f3fbbfaf 100644 (file)
@@ -859,6 +859,14 @@ static void write_png(const char* imageName,
 
     analyze_image(imageName, imageInfo, grayscaleTolerance, rgbPalette, alphaPalette,
                   &paletteEntries, &hasTransparency, &color_type, outRows);
+
+    // If the image is a 9-patch, we need to preserve it as a ARGB file to make
+    // sure the pixels will not be pre-dithered/clamped until we decide they are
+    if (imageInfo.is9Patch && (color_type == PNG_COLOR_TYPE_RGB ||
+            color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_PALETTE)) {
+        color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+    }
+
     switch (color_type) {
     case PNG_COLOR_TYPE_PALETTE:
         NOISY(printf("Image %s has %d colors%s, using PNG_COLOR_TYPE_PALETTE\n",