]> git.draconx.ca Git - liblbx.git/blobdiff - src/lbximg.c
liblbx: Don't scale palette values internally.
[liblbx.git] / src / lbximg.c
index c761c176f6ee308e421cbdf67dfe73bdaaee0b2d..6c54b0f3b659bbb79371d63efe88252f8053858b 100644 (file)
@@ -172,15 +172,6 @@ static int loadpalette(struct lbx_image *img, struct lbx_imginfo *info,
 {
        int i;
 
-       /* In no-palette mode, use palette indices for colour. */
-       if (!usepalette) {
-               for (i = 0; i < 256; i++) {
-                       palette[i] = (struct lbx_colour){i,i,i};
-               }
-
-               return 0;
-       }
-
        /* For sanity. */
        if (!palf && !info->palettesz && !override) {
                tool_err(-1, "no palette available.");
@@ -189,7 +180,7 @@ static int loadpalette(struct lbx_image *img, struct lbx_imginfo *info,
 
        /* Default the palette to a wonderful pink. */
        for (i = 0; i < 256; i++) {
-               palette[i] = (struct lbx_colour){0xff, 0x00, 0xff};
+               palette[i] = (struct lbx_colour){0x3f, 0x00, 0x3f};
        }
 
        /* Read the external palette, if any. */
@@ -237,8 +228,10 @@ int decode(struct lbx_image *img, FILE *palf, FILE *override, char **argv)
                }
        }
 
-       if (loadpalette(img, &info, palf, override, palette) == -1) {
-               goto err;
+       if (usepalette) {
+               if (loadpalette(img, &info, palf, override, palette) == -1) {
+                       goto err;
+               }
        }
 
        /* Extract the images, in order. */
@@ -257,7 +250,8 @@ int decode(struct lbx_image *img, FILE *palf, FILE *override, char **argv)
 
                mask = lbx_img_getmask(img);
 
-               if (!outpng(i, data, mask, img->width, img->height, palette)) {
+               if (!outpng(i, data, mask, img->width, img->height,
+                           usepalette ? palette : NULL)) {
                        extracted = 1;
                }
        }
@@ -370,7 +364,7 @@ int main(int argc, char **argv)
                        file = "stdin";
 
                lbx_img_getinfo(img, &info);
-               printf("%s is %ux%u LBX image, %u frame(s)%s%s\n",
+               printf("%s is %hux%hu LBX image, %hhu frame(s)%s%s%s\n",
                       file, img->width, img->height, img->frames,
                       info.palettesz ? ", embedded palette" : "",
                       img->chunk     ? ", chunked" : "",