From 4602d462035c93844417f752fb10f621a1b37afa Mon Sep 17 00:00:00 2001 From: twanvl Date: Sat, 29 Dec 2007 19:38:09 +0000 Subject: [PATCH] added desaturate function for making greyed out icons git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@793 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/gfx/gfx.hpp | 3 +++ src/gfx/image_effects.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/gfx/gfx.hpp b/src/gfx/gfx.hpp index a5d279f6..d74a4d6d 100644 --- a/src/gfx/gfx.hpp +++ b/src/gfx/gfx.hpp @@ -95,6 +95,9 @@ void mask_blend(Image& img1, const Image& img2, const Image& mask); /// Saturate an image, amount should be in range [0...100] void saturate(Image& image, int amount); +/// Desaturate an image +void desaturate(Image& image); + // ----------------------------------------------------------------------------- : Combining /// Ways in which images can be combined, similair to what Photoshop supports diff --git a/src/gfx/image_effects.cpp b/src/gfx/image_effects.cpp index 5160ebfc..b0041799 100644 --- a/src/gfx/image_effects.cpp +++ b/src/gfx/image_effects.cpp @@ -30,3 +30,15 @@ void saturate(Image& image, int amount) { pix += 3; } } + +void desaturate(Image& image) { + Byte* pix = image.GetData(); + Byte* end = pix + image.GetWidth() * image.GetHeight() * 3; + while (pix != end) { + int r = pix[0], g = pix[1], b = pix[2]; + pix[0] = (r+r+g+b) / 4; + pix[1] = (g+r+g+b) / 4; + pix[2] = (b+r+g+b) / 4; + pix += 3; + } +}