diff options
Diffstat (limited to 'tests/bitmap.h')
-rw-r--r-- | tests/bitmap.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/bitmap.h b/tests/bitmap.h new file mode 100644 index 000000000..ed3e0f1c0 --- /dev/null +++ b/tests/bitmap.h @@ -0,0 +1,90 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <unistd.h> +#include <string.h> + +#include <sys/types.h> +#include <sys/stat.h> + +#include <ft2build.h> + +#include "murmur3.h" /* MurmurHash3_x64_128 header file */ + +#include <png.h> +#include <dlfcn.h> +#include <math.h> + +#include FT_FREETYPE_H +#include FT_MODULE_H +#include FT_LCD_FILTER_H +#include FT_BITMAP_H + +#define BITS_PER_PIXEL_RGBA 32 +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + +typedef struct { /* To store 32bit Hash */ + FT_UInt32 hash; +}HASH_32; + +typedef struct { /* To store 128bit Hash */ + FT_UInt32 hash[4]; +}HASH_128; + +/* A 32-bit pixel */ +typedef struct { + unsigned char red; + unsigned char green; + unsigned char blue; + unsigned char alpha; +} PIXEL; + +/* A picture. */ +typedef struct { + PIXEL* pixels; + size_t width; + size_t height; +} IMAGE; + +/* Render modes */ +enum render_modes + { MONO, AA, RGB, BGR, VRGB, VBGR }; +/*-----------------------------------------------------------------*/ + +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); + +int Compare_Hash(HASH_128* hash_b, HASH_128* hash_t); + +/*-----------------------------------------------------------------*/ +/* Returns the render_mode */ +int Get_Render_Mode(const char* mode); +/* Returns a pointer to pixel */ +/* at (x,y) co-ordinate */ +PIXEL* Pixel_At (IMAGE * bitmap, int x, int y); +/*Render mode string to render_mode code */ +void Make_PNG (FT_Bitmap* bitmap,IMAGE* fruit, int i,int render_mode); +/* Image to file */ +int Generate_PNG (IMAGE *bitmap, const char *path,int render_mode); +/* Read PNG */ +void Read_PNG(char *filename, IMAGE * after_effect); +/* Add effects using two PNG images and generate an image*/ +int Add_effect(IMAGE* base, IMAGE* test, IMAGE* out, int Effect_ID); +/* Stitch 2 PNG files */ +void Stitch(IMAGE* left, IMAGE* right, IMAGE* result); +/* Finding the first non-empty (non-white) column */ +int First_Column(IMAGE* input); +/* Finding the first non-empty (non-white) row */ +int First_Row(IMAGE* input); +/* Appening white columns with image alignment */ +IMAGE* Append_Columns(IMAGE* small, IMAGE* big); +/* Appening white columns with image alignment */ +IMAGE* Append_Rows(IMAGE* small, IMAGE* big); +/* calculating the Pixel Differences */ +int Image_Diff( IMAGE* base, IMAGE* test); +/* Print the row in list-view webpage */ +void Print_Row( FILE* fp, int index, char* name, int diff ); +/* Print the table-headers in list-view webpage */ +void Print_Head( FILE* fp ); |