]> git.tdb.fi Git - ttf2png.git/blobdiff - ttf2png.c
Generate only as tall image as needed in sequantial grid mode
[ttf2png.git] / ttf2png.c
index e25434945e41fa44d906ebfd1c5babc431b791a3..8fc211e4900fd73b6f41711075a6162de8034663 100644 (file)
--- a/ttf2png.c
+++ b/ttf2png.c
@@ -273,7 +273,7 @@ int main(int argc, char **argv)
 
 void usage()
 {
-       printf("ttf2png - True Type Font to PNG converter\n"
+       printf("ttf2png 1.0 - True Type Font to PNG converter\n"
                "Copyright (c) 2004-2008  Mikko Rasa, Mikkosoft Productions\n"
                "Distributed under the GNU General Public License\n\n");
 
@@ -320,14 +320,14 @@ void *alloc_image_data(size_t a, size_t b)
                        a += c;
                if(a<c)
                {
-                       fprintf(stderr, "Cannot allocate %d kbytes of memory for image\n", c/1024*b);
+                       fprintf(stderr, "Cannot allocate %lu kbytes of memory for image\n", (unsigned long)(c/1024*b));
                        return NULL;
                }
                b /= 2;
        }
        ptr = malloc(a);
        if(!ptr)
-               fprintf(stderr, "Cannot allocate %d kbytes of memory for image\n", a/1024*b);
+               fprintf(stderr, "Cannot allocate %lu kbytes of memory for image\n", (unsigned long)(a/1024*b));
        return ptr;
 }
 
@@ -511,7 +511,10 @@ int render_grid(Font *font, unsigned cellw, unsigned cellh, unsigned cpl, int se
        last = font->glyphs[font->n_glyphs-1].code;
 
        font->image.w = round_to_pot(cpl*cellw);
-       font->image.h = round_to_pot((last-first+cpl)/cpl*cellh);
+       if(seq)
+               font->image.h = round_to_pot((font->n_glyphs+cpl-1)/cpl*cellh);
+       else
+               font->image.h = round_to_pot((last-first+cpl)/cpl*cellh);
 
        font->image.data = (char *)alloc_image_data(font->image.w, font->image.h);
        if(!font->image.data)
@@ -727,7 +730,7 @@ int save_png(const char *fn, const Image *image, char alpha)
        png_info   *pngi;
        png_byte   **rows;
        unsigned   i;
-       png_byte   *data2;
+       png_byte   *data2 = 0;
        int        color;
 
        if(!strcmp(fn, "-"))