summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKushal K S V S <kkushal32@gmail.com>2017-06-15 14:34:10 +0530
committerKushal K S V S <kkushal32@gmail.com>2017-06-15 14:34:10 +0530
commit794b643146831f8fe231518e61525163ddd117dd (patch)
tree160a7657f6e4f62260e3ac3ed3f1c3e65d717639
parent5527e26925b991e4f49a59db6a0bcb5b6471578a (diff)
downloadfreetype2-794b643146831f8fe231518e61525163ddd117dd.tar.gz
Removed unnecessary loops and variables
-rw-r--r--README10
-rw-r--r--bitmap.c68
-rw-r--r--bitmap.h2
3 files changed, 38 insertions, 42 deletions
diff --git a/README b/README
index 6a5430aa6..daeaa79a7 100644
--- a/README
+++ b/README
@@ -4,4 +4,12 @@ gcc example1.c ksvsk.c murmur3.c -Wall -I /usr/local/include/freetype2/ -lfreety
./example1 <font_file> <pt_size> <character>
gcc example2.c ksvsk.c murmur3.c -Wall -I /usr/local/include/freetype2/ -lfreetype -o example2
-./example2 <font_file> <pt_size> \ No newline at end of file
+./example2 <font_file> <pt_size>
+
+
+NOTE
+
+-> DONOT use Get_Padding render MONO / GRAYSCALE bitmaps.
+ Use FT_Bitmap_Convert to make the width of bitmap a multiple of 4 bytes and then write it to file.
+
+
diff --git a/bitmap.c b/bitmap.c
index ab1511810..fc5940935 100644
--- a/bitmap.c
+++ b/bitmap.c
@@ -88,7 +88,7 @@ void Write_Bitmap_Header (FT_Bitmap * bitmap ) {
header->info_header.info_header_size = sizeof(BMP_INFO_HEADER);
header->info_header.width = image_width ;
- header->info_header.height = image_rows;
+ header->info_header.height = - image_rows;
header->info_header.planes = PLANES;
header->info_header.bits_per_pixel = Get_Bits_Per_Pixel( bitmap->pixel_mode );
header->info_header.compression = COMPRESSION;
@@ -106,23 +106,21 @@ void Write_Bitmap_Header (FT_Bitmap * bitmap ) {
void Write_Bitmap_Data_LCD_RGB( FT_Bitmap * bitmap ){
char value;
+ int i,j,k;
FILE *fp = fopen("test.bmp","a");
- for (int i = bitmap->rows - 1; i >= 0 ; --i)
+ for (i = 0; i < bitmap->rows ; ++i)
{
- for (int j = 2; j < bitmap->width; j = j+3)
+ for ( j = 2; j < bitmap->width; j = j+3)
{
- value = 0xff - bitmap->buffer[( i * bitmap->pitch) + j];
- fwrite (&value, 1, 1,fp);
-
- value = 0xff - bitmap->buffer[( i * bitmap->pitch) + j - 1];
- fwrite (&value, 1, 1,fp);
-
- value = 0xff - bitmap->buffer[( i * bitmap->pitch) + j - 2];
- fwrite (&value, 1, 1,fp);
+ for ( k = 0; k < 3; ++k)
+ {
+ value = 0xff - bitmap->buffer[( i * bitmap->pitch) + j - k];
+ fwrite (&value, 1, 1,fp);
+ }
}
- for (int k = 0; k < Get_Padding(bitmap); ++k)
+ for ( k = 0; k < Get_Padding(bitmap); ++k)
{
value = 0xff;
fwrite (&value, 1, 1,fp);
@@ -135,23 +133,18 @@ void Write_Bitmap_Data_LCD_RGB( FT_Bitmap * bitmap ){
void Write_Bitmap_Data_LCD_BGR( FT_Bitmap * bitmap ){
char value;
+ int i,j,k;
FILE *fp = fopen("test.bmp","a");
- for (int i = bitmap->rows - 1; i >= 0 ; --i)
+ for ( i = 0; i < bitmap->rows ; ++i)
{
- for (int j = 0; j < bitmap->width; j = j+3)
+ for ( j = 0; j < bitmap->width; j++)
{
value = 0xff - bitmap->buffer[( i * bitmap->pitch) + j];
fwrite (&value, 1, 1,fp);
-
- value = 0xff - bitmap->buffer[( i * bitmap->pitch) + j + 1];
- fwrite (&value, 1, 1,fp);
-
- value = 0xff - bitmap->buffer[( i * bitmap->pitch) + j + 2];
- fwrite (&value, 1, 1,fp);
}
- for (int k = 0; k < Get_Padding(bitmap); ++k)
+ for ( k = 0; k < Get_Padding(bitmap); ++k)
{
value = 0xff;
fwrite (&value, 1, 1,fp);
@@ -213,7 +206,7 @@ void Write_Bitmap_Data_LCD_V_RGB (FT_Bitmap * bitmap) {
value = 0xff;
fwrite (&value, 1, 1,fp);
}
- step = step - 3;
+ step = step - 3;
}
fclose(fp);
@@ -223,7 +216,7 @@ void Write_Bitmap_Data_MONO (FT_Bitmap * bitmap) {
FILE *fp = fopen("test.bmp","a");
- int i,j;
+ int i;
unsigned char value;
for ( i = 0; i < 256; ++i)
{
@@ -235,17 +228,15 @@ void Write_Bitmap_Data_MONO (FT_Bitmap * bitmap) {
fwrite (&value,1,1,fp);
}
- for ( i = bitmap->rows - 1; i >= 0 ; --i)
+
+ for (int i = 0; i < bitmap->pitch * bitmap->rows; ++i)
{
- for ( j = 0; j < bitmap->pitch; ++j)
- {
- if ( bitmap->buffer[( i * bitmap->pitch) + j] != 0x00 ){
- value = 0x00; // remember taking reverse
- fwrite (&value, 1, 1,fp);
- }else{
- value = 0xff;
- fwrite (&value, 1, 1,fp);
- }
+ if ( bitmap->buffer[i] != 0x00 ){
+ value = 0x00; // remember taking reverse
+ fwrite (&value, 1, 1,fp);
+ }else{
+ value = 0xff;
+ fwrite (&value, 1, 1,fp);
}
}
@@ -255,7 +246,7 @@ void Write_Bitmap_Data_MONO (FT_Bitmap * bitmap) {
void Write_Bitmap_Data_GRAY(FT_Bitmap * bitmap) {
FILE *fp = fopen("test.bmp","a");
- int i,j;
+ int i;
unsigned char value;
for ( i = 0; i < 256; ++i)
@@ -268,13 +259,10 @@ void Write_Bitmap_Data_GRAY(FT_Bitmap * bitmap) {
fwrite (&value,1,1,fp);
}
- for ( j = bitmap->rows - 1; j >= 0; --j)
+ for (int i = 0; i < bitmap->pitch * bitmap->rows; ++i)
{
- for ( i = 0; i < bitmap->pitch; ++i)
- {
- value = 255 - bitmap->buffer[j * bitmap->pitch + i];
- fwrite(&value,1,1,fp);
- }
+ value = 255 - bitmap->buffer[i];
+ fwrite(&value,1,1,fp);
}
fclose(fp);
diff --git a/bitmap.h b/bitmap.h
index 43e7af15b..f2e309bd5 100644
--- a/bitmap.h
+++ b/bitmap.h
@@ -33,7 +33,7 @@ typedef struct{ // Bitmap INFO Header
FT_UInt32 info_header_size;
FT_UInt32 width;
- FT_UInt32 height;
+ FT_Int height;
FT_UInt16 planes;
FT_UInt16 bits_per_pixel;
FT_UInt32 compression;