From e4a31101496c0103875023905f3b688bbdaf8abb Mon Sep 17 00:00:00 2001 From: Quentin Date: Fri, 5 Jun 2020 21:07:24 +0200 Subject: [PATCH] [Feature] RGB files compatibility --- escher/image/inliner.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/escher/image/inliner.c b/escher/image/inliner.c index a2f49e655..289fec639 100644 --- a/escher/image/inliner.c +++ b/escher/image/inliner.c @@ -20,7 +20,7 @@ #define MAX_FILENAME_LENGTH 255 void generateHeaderFromImage(FILE * file, const char * guardian, const char * variable); -void generateImplementationFromImage(FILE * file, const char * header, const char * variable, uint32_t width, uint32_t height, png_bytep * pixelsRowPointers); +void generateImplementationFromImage(FILE * file, const char * header, const char * variable, uint32_t width, uint32_t height, png_byte colorType, png_bytep * pixelsRowPointers); void fileNameToSnakeCaseName(const char * fileName, char * snakeCaseName, size_t maxLength); void snakeCaseNameToUpperSnakeName(const char * snakeCaseName, char * upperSnakeCaseName, size_t maxLength); void camelCaseNameFromSnakeCaseNames(const char * snakeCaseName, const char * upperSnakeCaseName, char * camelCaseName, size_t maxLength); @@ -55,7 +55,7 @@ int main(int argc, char * argv[]) { png_byte colorType = png_get_color_type(png, info); png_byte bitDepth = png_get_bit_depth(png, info); - ERROR_IF(colorType != PNG_COLOR_TYPE_RGB_ALPHA, "Error: Inliner only handles RGBA PNG images."); + ERROR_IF(colorType != PNG_COLOR_TYPE_RGB_ALPHA && colorType != PNG_COLOR_TYPE_RGB, "Error: Inliner only handles RGB/RGBA PNG images."); ERROR_IF(bitDepth != 8, "Error: Inliner only handles RGBA8888 PNG images."); png_bytep * rowPointers = (png_bytep *)malloc(sizeof(png_bytep)*height); @@ -102,7 +102,7 @@ int main(int argc, char * argv[]) { fclose(header); FILE * implementation = fopen(implementationPath, "w"); - generateImplementationFromImage(implementation, lowerSnakeCaseName, camelCaseName, width, height, rowPointers); + generateImplementationFromImage(implementation, lowerSnakeCaseName, camelCaseName, width, height, colorType, rowPointers); fclose(implementation); fclose(inputFile); @@ -151,7 +151,7 @@ void generateHeaderFromImage(FILE * file, const char * guardian, const char * va fprintf(file, "#endif\n"); } -void generateImplementationFromImage(FILE * file, const char * header, const char * variable, uint32_t width, uint32_t height, png_bytep * pixelsRowPointers) { +void generateImplementationFromImage(FILE * file, const char * header, const char * variable, uint32_t width, uint32_t height, png_byte colorType, png_bytep * pixelsRowPointers) { int sizeOfPixelBuffer = width * height * sizeof(uint16_t); uint16_t * pixelBuffer = (uint16_t *)malloc(sizeOfPixelBuffer); @@ -159,11 +159,18 @@ void generateImplementationFromImage(FILE * file, const char * header, const cha for (int j=0; j