* data to libpng and let it do its magic.
*/
+ png_color png_palette[256];
+ for (unsigned i = 0; i < 256; i++) {
+ png_palette[i].red = palette[i].red;
+ png_palette[i].green = palette[i].green;
+ png_palette[i].blue = palette[i].blue;
+ }
+
png_set_IHDR(png, info, width, height, 8,
PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE,
PNG_COMPRESSION_TYPE_DEFAULT,
PNG_FILTER_TYPE_DEFAULT);
- png_set_PLTE(png, info, (png_colorp)palette, 256);
+ png_set_PLTE(png, info, png_palette, 256);
png_set_rows(png, info, framedata);
png_write_png(png, info, PNG_TRANSFORM_IDENTITY, NULL);
} else {
}
/* Read the external palette, if any. */
- if (palf && lbximg_loadpalette(palf, palette) == -1) {
+ if (palf && lbximg_loadpalette(palf, &lbx_default_fops, palette) != 0) {
errmsg("error reading external palette: %s\n", lbx_strerror());
return -1;
}