diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/crtfont/crtfont.c | 30 | ||||
-rw-r--r-- | tools/genfont/genfont.c | 32 |
2 files changed, 50 insertions, 12 deletions
diff --git a/tools/crtfont/crtfont.c b/tools/crtfont/crtfont.c index 97e57fe..fc7beef 100644 --- a/tools/crtfont/crtfont.c +++ b/tools/crtfont/crtfont.c @@ -10,7 +10,9 @@ * This file is released under the GNU General Public License. Refer * to the COPYING file distributed with this package. * - * (c) 2004 Andreas Regel <andreas.regel AT powarman.de> + * (c) 2004 Andreas Regel <andreas.regel AT powarman.de> + * (c) 2010-2011 Wolfgang Astleitner <mrwastl AT users sourceforge net> + * Andreas 'randy' Weinberger */ #include <getopt.h> @@ -20,6 +22,8 @@ #include <string.h> #include <glcdgraphics/bitmap.h> #include <glcdgraphics/font.h> +#include <glcdgraphics/image.h> +#include <glcdgraphics/pbm.h> static const char *prgname = "crtfont"; static const char *version = "0.1.6"; @@ -151,15 +155,25 @@ int main(int argc, char *argv[]) // Load Picture switch (picFormat) { - case PBM: - bitmap = new GLCD::cBitmap(0, 0); - bitmap->LoadPBM(picName); - if (!bitmap) - { + case PBM: { + GLCD::cPBMFile pbm; + GLCD::cImage* image = new GLCD::cImage(); + + if (!image) + return 3; + + if (pbm.Load(*image, picName) == false) { fprintf(stderr, "Cannot open file: %s\n",picName); + delete image; return 2; } - break; + + const GLCD::cBitmap * pbmbm = image->GetBitmap(); + bitmap = new GLCD::cBitmap(*pbmbm); + delete image; + pbmbm = NULL; + } + break; default: return 2; @@ -296,7 +310,7 @@ void usage(void) fprintf(stdout, " graphlcd plugin for VDR.\n\n"); fprintf(stdout, " Usage: %s -f <format> -b bmpfile -d descfile -o outfile\n\n", prgname); fprintf(stdout, " -f --format specifies the format of the bitmap. Possible values are:\n"); - fprintf(stdout, " PBM : file is an binary PBM file\n" ); + fprintf(stdout, " PBM : file is a binary PBM file\n" ); fprintf(stdout, " -b --bmpfile specifies the name of the bitmap file (*.pbm)\n"); fprintf(stdout, " -d --descfile specifies the name of the description file (*.desc)\n"); fprintf(stdout, " -o --outfile specifies the name of the output file (*.fnt)\n"); diff --git a/tools/genfont/genfont.c b/tools/genfont/genfont.c index ce9698d..980c55b 100644 --- a/tools/genfont/genfont.c +++ b/tools/genfont/genfont.c @@ -19,6 +19,8 @@ #include <glcdgraphics/bitmap.h> #include <glcdgraphics/font.h> +#include <glcdgraphics/image.h> +#include <glcdgraphics/pbm.h> static const char *prgname = "genfont"; static const char *version = "0.0.2"; @@ -138,9 +140,10 @@ int main(int argc, char *argv[]) fprintf(descFile, "spacebetween:%d\n", 0); fprintf(descFile, "spacewidth:%d\n", 0); - for (unsigned int i = 0; i < 256; i++) + for (uint32_t i = 0; i < 256; i++) { - const GLCD::cBitmap * charBitmap = font.GetCharacter((char) i); + const GLCD::cBitmap * charBitmap = font.GetCharacter(i); + if (charBitmap == NULL) continue; @@ -155,12 +158,33 @@ int main(int argc, char *argv[]) } } + // invert image + for(int y=0; y < bitmap->Height(); y++) { + for(int x=0; x < bitmap->Width(); x++) { + bitmap->DrawPixel(x, y, GLCD::cColor(bitmap->GetPixel(x, y)).Invert()); + } + } + if (posX > 0) // write last end marker fprintf(descFile, "%d\n", posX); fileName = outputName + ".pbm"; - bitmap->SavePBM(fileName); - delete bitmap; + + GLCD::cPBMFile pbm; + GLCD::cImage* image = new GLCD::cImage(); + + if (!image) + return 3; + + image->AddBitmap(bitmap); + + if (pbm.Save(*image, fileName) == false) { + fprintf(stderr, "Cannot save file: %s\n",fileName.c_str()); + delete image; + return 2; + } + fclose(descFile); + delete image; } fprintf(stdout, "Font successfully generated.\n"); |