Mercurial > hg > dmlib
changeset 566:d400e32b62d9
Add a slightly different raw output format.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 30 Dec 2012 13:18:08 +0200 |
parents | 2dbe70d40481 |
children | b2b461829c61 |
files | gfxconv.c libgfx.c libgfx.h |
diffstat | 3 files changed, 37 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/gfxconv.c Thu Dec 20 01:44:01 2012 +0200 +++ b/gfxconv.c Sun Dec 30 13:18:08 2012 +0200 @@ -72,7 +72,10 @@ "IFF ILBM file", "lbm", TRUE, FALSE, FFMT_IMAGE , IMGFMT_ILBM, }, - + { + "Bitplaned RAW (intl/non-intl) image file", "raw", FALSE, TRUE, + FFMT_IMAGE , IMGFMT_RAW, + }, { "IFFMaster RAW image file", "araw", FALSE, TRUE, FFMT_IMAGE , IMGFMT_ARAW, @@ -1019,6 +1022,7 @@ if (info) dmMsg(2, "%s output.\n", spec->paletted ? "Indexed 8bpp" : "24bit RGB"); return dmWritePCXImage(filename, image, spec); + case IMGFMT_RAW: case IMGFMT_ARAW: { FILE *fp; @@ -1057,7 +1061,9 @@ palID[i] = '_'; } - fprintf(fp, + if (iformat == IMGFMT_ARAW) + { + fprintf(fp, "%s_width: dw.w %d\n" "%s_height: dw.w %d\n" "%s_nplanes: dw.w %d\n" @@ -1069,18 +1075,29 @@ palID, image->ncolors, palID); - dmWriteIFFMasterRAWPalette(fp, image, 1 << optSpec.nplanes, NULL, NULL); + dmWriteIFFMasterRAWPalette(fp, image, 1 << optSpec.nplanes, NULL, NULL); - fprintf(fp, + fprintf(fp, "%s: incbin \"%s\"\n", palID, filename); + } + else + { + fprintf(fp, + "%s_width: dw.w %d\n" + "%s_height: dw.w %d\n" + "%s_nplanes: dw.w %d\n", + palID, image->width, + palID, image->height, + palID, spec->nplanes); + } fclose(fp); dmFree(palID); } if (info) dmMsg(2, "%d bitplanes, %s interleave.\n", spec->nplanes, spec->interleave ? "with" : "without"); - return dmWriteIFFMasterRAWImage(filename, image, spec); + return dmWriteRAWImage(filename, image, spec); } default:
--- a/libgfx.c Thu Dec 20 01:44:01 2012 +0200 +++ b/libgfx.c Sun Dec 30 13:18:08 2012 +0200 @@ -248,7 +248,7 @@ } -int dmWriteIFFMasterRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec) +int dmWriteRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec) { int xc, yc, plane, res; DMBitStream bs; @@ -292,18 +292,19 @@ return dmFlushBitStream(&bs); } -int dmWriteIFFMasterRAWImage(const char *filename, DMImage *img, DMImageSpec *spec) + +int dmWriteRAWImage(const char *filename, DMImage *img, DMImageSpec *spec) { FILE *fp; int res; if ((fp = fopen(filename, "wb")) == NULL) { - dmError("IFFMasterRAW: Could not open file '%s' for writing.\n", filename); + dmError("RAW: Could not open file '%s' for writing.\n", filename); return DMERR_FOPEN; } - res = dmWriteIFFMasterRAWImageFILE(fp, img, spec); + res = dmWriteRAWImageFILE(fp, img, spec); fclose(fp); return res; @@ -1767,10 +1768,16 @@ NULL, NULL, }, { + "RAW", "Plain bitplaned (interleaved or non-interleaved) RAW", + NULL, + NULL, NULL, + dmWriteRAWImage, dmWriteRAWImageFILE, + }, + { "ARAW", "IFFMaster Amiga RAW", NULL, NULL, NULL, - dmWriteIFFMasterRAWImage, dmWriteIFFMasterRAWImageFILE, + dmWriteRAWImage, dmWriteRAWImageFILE, } };
--- a/libgfx.h Thu Dec 20 01:44:01 2012 +0200 +++ b/libgfx.h Sun Dec 30 13:18:08 2012 +0200 @@ -22,6 +22,7 @@ IMGFMT_PPM, IMGFMT_PCX, IMGFMT_ILBM, + IMGFMT_RAW, IMGFMT_ARAW, IMGFMT_LAST @@ -96,8 +97,8 @@ int dmWriteImageData(DMImage *img, void *cbdata, BOOL (*writeRowCB)(void *, Uint8 *, size_t), const DMImageSpec *spec); int dmWriteIFFMasterRAWPalette(FILE *fp, DMImage *img, int ncolors, const char *indent, const char *type); -int dmWriteIFFMasterRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec); -int dmWriteIFFMasterRAWImage(const char *filename, DMImage *img, DMImageSpec *spec); +int dmWriteRAWImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec); +int dmWriteRAWImage(const char *filename, DMImage *img, DMImageSpec *spec); int dmWritePPMImageFILE(FILE *fp, DMImage *img, DMImageSpec *spec); int dmWritePPMImage(const char *filename, DMImage *img, DMImageSpec *spec);