| #include <stdio.h> |
| #include <stdlib.h> |
| #include <stdint.h> |
| #include <unistd.h> |
| |
| #include <sys/types.h> |
| #include <sys/stat.h> |
| |
| #include <ft2build.h> |
| |
| #include "murmur3.h" // MurmurHash3_x64_128 header file |
| |
| #include <png.h> |
| |
| |
| #include FT_FREETYPE_H |
| #include FT_MODULE_H |
| #include FT_LCD_FILTER_H |
| #include FT_BITMAP_H |
| |
| #define BITS_PER_PIXEL_RGBA 32 |
| |
| typedef struct { // To store 32bit Hash |
| FT_UInt32 hash[1]; |
| }HASH_32; |
| |
| typedef struct { // To store 128bit Hash |
| FT_UInt32 hash[4]; |
| }HASH_128; |
| |
| typedef struct { |
| unsigned char red; |
| unsigned char green; |
| unsigned char blue; |
| unsigned char alpha; |
| } PIXEL; |
| |
| typedef struct { |
| unsigned char red; |
| unsigned char green; |
| unsigned char blue; |
| unsigned char alpha; |
| } PIXEL_BGRA; |
| |
| /* A picture. */ |
| |
| typedef struct { |
| PIXEL *pixels; |
| size_t width; |
| size_t height; |
| } IMAGE; |
| |
| //------------------------------------------------------------------------------ |
| |
| HASH_32 * Generate_Hash_x86_32(FT_Bitmap * bitmap, HASH_32 * murmur); |
| HASH_128 * Generate_Hash_x86_128(FT_Bitmap * bitmap, HASH_128 * murmur); |
| HASH_128 * Generate_Hash_x64_128(FT_Bitmap * bitmap, HASH_128 * murmur); |
| |
| //------------------------------------------------------------------------------ |
| |
| PIXEL * Pixel_At (IMAGE * bitmap, int x, int y); // Returns a pointer to pixel |
| // at (x,y) co-ordinate |
| // buffer to image |
| void Make_PNG(FT_Bitmap* bitmap,char* name,int i,int render_mode); |
| // Image to file |
| int Generate_PNG (IMAGE *bitmap, const char *path,int render_mode); |
| |