From 74fd0e7ca4faaa428c248a9ae714e2e7371e6ed4 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 3 Jul 2018 00:57:58 +0200 Subject: [PATCH] Added function: ImageColorReplace() --- release/include/raylib.h | 1 + release/libs/win32/mingw32/libraylib.a | Bin 1118066 -> 1118620 bytes src/raylib.h | 1 + src/textures.c | 30 +++++++++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/release/include/raylib.h b/release/include/raylib.h index 96bf2443d..430003182 100644 --- a/release/include/raylib.h +++ b/release/include/raylib.h @@ -937,6 +937,7 @@ RLAPI void ImageColorInvert(Image *image); RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100) RLAPI void ImageColorBrightness(Image *image, int brightness); // Modify image color: brightness (-255 to 255) +RLAPI void ImageColorReplace(Image *image, Color color, Color replace); // Modify image color: replace color // Image generation functions RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color diff --git a/release/libs/win32/mingw32/libraylib.a b/release/libs/win32/mingw32/libraylib.a index 675b11eae0c6d57d500ade67dc112c44bb35fe77..e5a6a9bca0432526a764b89559373ce4bc8cfc97 100644 GIT binary patch delta 23879 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 delta 23456 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 = processed.data; } + +// Modify image color: replace color +void ImageColorReplace(Image *image, Color color, Color replace) +{ + Color *pixels = GetImageData(*image); + + for (int y = 0; y < image->height; y++) + { + for (int x = 0; x < image->width; x++) + { + if ((pixels[y*image->width + x].r == color.r) && + (pixels[y*image->width + x].g == color.g) && + (pixels[y*image->width + x].b == color.b) && + (pixels[y*image->width + x].a == color.a)) + { + pixels[y*image->width + x].r = replace.r; + pixels[y*image->width + x].g = replace.g; + pixels[y*image->width + x].b = replace.b; + pixels[y*image->width + x].a = replace.a; + } + } + } + + Image processed = LoadImageEx(pixels, image->width, image->height); + ImageFormat(&processed, image->format); + UnloadImage(*image); + free(pixels); + + image->data = processed.data; +} #endif // SUPPORT_IMAGE_MANIPULATION #if defined(SUPPORT_IMAGE_GENERATION)