]> git.draconx.ca Git - liblbx.git/blobdiff - src/lbximg.c
lbximg: Push no-palette mode down into the PNG writer.
[liblbx.git] / src / lbximg.c
index c761c176f6ee308e421cbdf67dfe73bdaaee0b2d..a7c60c6d54d0330a7111ba06cc9008891c7f739a 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.");
@@ -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;
                }
        }