*** empty log message ***
[m17n/libotf.git] / example / otfimage.c
index 0a23a7a..d68411b 100644 (file)
@@ -1,9 +1,4 @@
 #include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <libgen.h>
 
 #include <ft2build.h>
 #include FT_FREETYPE_H
 
 FT_Face face;
 
-void
-dump_image (int pixel_size, int index)
+int
+dump_image (int pixel_size, int index, int code, int full)
 {
   int err = FT_Load_Glyph (face, index, FT_LOAD_RENDER | FT_LOAD_MONOCHROME);
   int i,j, size;
   unsigned char *buf;
   
   if (err)
-    return;
+    return -1;
   size = face->glyph->bitmap.rows * face->glyph->bitmap.width;
   if (! size)
-    return;
+    return -1;
   buf = (unsigned char *) face->glyph->bitmap.buffer;
-  printf ("(#x%02X \"P4 %d %d ",
-         index, face->glyph->bitmap.width, face->glyph->bitmap.rows);
+  printf ("(#x%04X \"P4 %d %d ",
+         code, face->glyph->bitmap.width, face->glyph->bitmap.rows);
   for (i = 0; i < face->glyph->bitmap.rows; i++)
     for (j = 0; j < (face->glyph->bitmap.width + 7) / 8; j++)
       {
        printf("\\%o", buf[i * face->glyph->bitmap.pitch + j]);
       }
   printf ("\")\n");
+  return 0;
 }
 
 /* Format MSG by FMT and print the result to the stderr, and exit.  */
@@ -50,6 +46,9 @@ main (int argc, char **argv)
   int err;
   int i;
   int pixel_size = DEFAULT_PIXEL_SIZE;
+  FT_Uint *raw_table;
+  FT_UInt unicode_table[0x80];
+  int max_glyph_id;
 
   if (argc != 2)
     FATAL_ERROR ("%s\n", "Usage: otfimage [ X-OPTION ... ]  OTF-FILE");
@@ -71,8 +70,23 @@ main (int argc, char **argv)
       pixel_size = i;
   }
 
+  for (i = 0, max_glyph_id = 0; i < 0x10000; i++)
+    if (FT_Load_Glyph (face, i, FT_LOAD_RENDER | FT_LOAD_MONOCHROME)
+
+
+  for (i = 0x0D00; i < 0x0D80; i++)
+    {
+      unicode_table[i - 0x0D00] = FT_Get_Char_Index (face, (FT_ULong) i);
+      if (unicode_table[i - 0x0D00])
+       printf ("%04X->%04X\n", i, unicode_table[i - 0x0D00]);
+    }
+
+  for (i = 0; i < 0x80; i++)
+    if (unicode_table[i])
+      dump_image (pixel_size, unicode_table[i], 0x0D00 + i, 1);
   for (i = 0; i < 0x10000; i++)
-    dump_image (pixel_size, i);
+    dump_image (pixel_size, i, 0x0E00 + i, 0);
+  
 
   exit (0);
 }