phoenix_title wx.lib.colourchooser.pypalette.PyPalette

The Pure-Python Palette

The PyPalette is a pure python implementation of a colour palette. The palette implementation here imitates the palette layout used by MS Windows and Adobe Photoshop.

The actual palette image has been embedded as an XPM for speed. The actual reverse-engineered drawing algorithm is provided in the GeneratePaletteBMP() method. The algorithm is tweakable by supplying the granularity factor to improve speed at the cost of display beauty. Since the generator isn’t used in real time, no one will likely care :) But if you need it for some sort of unforeseen realtime application, it’s there.


class_hierarchy Class Hierarchy

Inheritance diagram for class PyPalette:

super_classes Known Superclasses

wx.lib.colourchooser.canvas.Canvas


method_summary Methods Summary

__init__

Creates a palette object.

ClearPoint

DoGetBestClientSize

Overridden to create a client window that exactly fits our bitmap

DrawBuffer

Draws the palette XPM into the memory buffer.

GeneratePaletteBMP

The actual palette drawing algorithm.

GetValue

Returns a colour value at a specific x, y coordinate pair. This

HighlightPoint

Highlights an area of the palette with a little circle around

xInBounds

Limit x to [0,width)

yInBounds

Limit y to [0,height)


api Class API

class PyPalette(canvas.Canvas)

The Pure-Python Palette

The PyPalette is a pure python implementation of a colour palette. The palette implementation here imitates the palette layout used by MS Windows and Adobe Photoshop.

The actual palette image has been embedded as an XPM for speed. The actual reverse-engineered drawing algorithm is provided in the GeneratePaletteBMP() method. The algorithm is tweakable by supplying the granularity factor to improve speed at the cost of display beauty. Since the generator isn’t used in real time, no one will likely care :) But if you need it for some sort of unforeseen realtime application, it’s there.


Methods

__init__(self, parent, id)

Creates a palette object.



ClearPoint(self)


DoGetBestClientSize(self)

Overridden to create a client window that exactly fits our bitmap



DrawBuffer(self)

Draws the palette XPM into the memory buffer.



GeneratePaletteBMP(self, file_name, granularity=1)

The actual palette drawing algorithm.

This used to be 100% reverse engineered by looking at the values on the MS map, but has since been redone Correctly(tm) according to the HSV (hue, saturation, value) colour model by Charl P. Botha <http://cpbotha.net/>.

Speed is tweakable by changing the granularity factor, but that affects how nice the output looks (makes the vertical blocks bigger. This method was used to generate the embedded XPM data.



GetValue(self, x, y)

Returns a colour value at a specific x, y coordinate pair. This is useful for determining the colour found a specific mouse click in an external event handler.



HighlightPoint(self, x, y)

Highlights an area of the palette with a little circle around the coordinate point



xInBounds(self, x)

Limit x to [0,width)



yInBounds(self, y)

Limit y to [0,height)