PaletteOptimiser

Graph

(0) -60 tip
Perform explicit RGB operations for improved performance.
Experiment with a simple alternative class to Image for pixel access. simpleimage
Re-expressed various things to try and help Shedskin even further. shedskin
Simplified further, raising an exception in get_value instead of returning None. shedskin
Used more explicit coding practices to help Shedskin. shedskin
Introduced a separate main program for potential Shedskin analysis. shedskin
Moved various activities to their own functions.
Propagate errors to horizontally-adjacent pixels for nicer dithering.
Added tag snapshot-20151009 for changeset 4d2d36f84941
Removed the square function, made saturation/desaturation options float-based. snapshot-20151009
Fixed option handling at the end of the argument list.
Changed darken/brighten to use numeric parameters.
Added parameterisation of the darken and brighten options.
Removed the colour cache: entries seemed to acquire rounded probabilities.
Removed the nearest function.
Initialise the extra function properly for module usage.
Attempt to find the next best combination of colours when some pixel values
Balancing is just simplifying the probabilities.
Handle hopeless cases of no appropriate colours by picking an arbitrary colour.
Made the experimental square function application slightly cleaner.
Added documentation and copyright/licensing details.
Reduced the propagated error by half.
Reduced the propagated error by half.
Spread any error across two pixels on the following row.
Fixed the complement compensation code which cannot have had any effect.
Cache colour lookup results and avoid unnecessary pixel operations.
Added options for verifying the number of colours per row, half-resolution
Propagated colour errors between rows to determine the best colours.
Introduced compensation to complementary colours for those removed.
Introduced a distance-based approach to obtain suitable alternative colours.
Integrated the squaring of contributions as an option.
Merged branches.
Fixed the limiting of colour exchange.
Limit colour exchange to those below a certain frequency threshold.
Limit colour exchange to those below a certain frequency threshold.
Permit a broader exchange of colours.
Fixed colour exchange.
Use the square of each scaled colour value to diminish the image intensity.
Introduced random colour exchange when too many colours are needed.
Changed the test for the most prominent pair to sum complement contributions.
Experiment with different complementary pairs when reducing contributions.
Added a "balancing" function to remove primary/secondary complement pairs, thus
Adopt a more thorough model of colour selection.
Experiment with replacing colours with black and white.
Sum colour probabilities instead of counting requested colours.
Use a proper main program!
Fixed the preview filename.
Added experiments with PIL's dithering/quantizing, summing colour probabilities,
Simplified get_value to use probabilities instead of pixel positions.
Experiment with combining more than two colours at once for an input colour.
Reduced the frequency of the second colour in the dithering pattern.
Experiment with calculating the dithering factor using the sum of the lengths of
Choose the nearest alternative colours to the original colour.
Permit stronger saturation and desaturation using multiple option flags.
Fixed saturation and added desaturation support.
Added image saturation support.
Changed the approach, introducing dithering with the "vertex colours" and a
Impose a maximum height on portrait images.
Adjusted the colourmap slightly.
Propagated various colourmap fixes.
(0) -60 tip