X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8b9a4190f70909de9568f45389e7aa3ecbc66b8a..42f8298f6f42d5d63bb3caf65682b7d9d9f8b702:/wxPython/wx/lib/imageutils.py diff --git a/wxPython/wx/lib/imageutils.py b/wxPython/wx/lib/imageutils.py index 5799b1da3c..d2cd60e037 100644 --- a/wxPython/wx/lib/imageutils.py +++ b/wxPython/wx/lib/imageutils.py @@ -1,8 +1,45 @@ +#---------------------------------------------------------------------- +# Name: wxPython.lib.imageutils +# Purpose: A collection of functions for simple image manipulations +# +# Author: Robb Shecter +# +# Created: 7-Nov-2002 +# RCS-ID: $Id$ +# Copyright: (c) 2002 by +# Licence: wxWindows license +#---------------------------------------------------------------------- -"""Renamer stub: provides a way to drop the wx prefix from wxPython objects.""" +from __future__ import nested_scopes -from wx import _rename -from wxPython.lib import imageutils -_rename(globals(), imageutils.__dict__, modulename='lib.imageutils') -del imageutils -del _rename + +def grayOut(anImage): + """ + Convert the given image (in place) to a grayed-out + version, appropriate for a 'disabled' appearance. + """ + factor = 0.7 # 0 < f < 1. Higher is grayer. + if anImage.HasMask(): + maskColor = (anImage.GetMaskRed(), anImage.GetMaskGreen(), anImage.GetMaskBlue()) + else: + maskColor = None + data = map(ord, list(anImage.GetData())) + + for i in range(0, len(data), 3): + pixel = (data[i], data[i+1], data[i+2]) + pixel = makeGray(pixel, factor, maskColor) + for x in range(3): + data[i+x] = pixel[x] + anImage.SetData(''.join(map(chr, data))) + + +def makeGray((r,g,b), factor, maskColor): + """ + Make a pixel grayed-out. If the pixel + matches the maskColor, it won't be + changed. + """ + if (r,g,b) != maskColor: + return map(lambda x: int((230 - x) * factor) + x, (r,g,b)) + else: + return (r,g,b)