Thanks a lot Bert! I have it with the following now.
color := Color random. anArray := origForm colors collect: [:each | each isTransparent ifTrue: [each] ifFalse: [each alphaMixed: 0.4 with: color]]. origForm colors: anArray.
Exactly what I wanted :-)
Regards, Matthias
Am Sat, 22 Nov 2008 16:29:36 +0100 schrieb Bert Freudenberg bert@freudenbergs.de:
Off the top of my head, this should make a nice rainbow palette:
anArray := (1 to: 256) collect: [:i | Color h: i*360/256 s: 1 v: 1]. someColorForm colors: anArray.
So basically the color map is simply an array of Colors.
- Bert -
On 22.11.2008, at 13:07, Matthias Korn wrote:
Hi Bert,
I have quite a hard time understanding how to use color maps. And I really did not find any helpful documentation on them for Squeak.
One example I found in the image is in BitBlt class>>exampleColorMap. But I don't know how to use it with a class>>Form/BitBlt, well, and what the heck they are actually doing there... In most occasions they used the Bitmap class instead of ColorMap and I couldn't find anything to convert.
Could you provide a simple code example on how to modify the color map of a Form? Or any other pointers....
Thanks a lot, Matthias
Am Sat, 22 Nov 2008 01:58:33 +0100 schrieb Bert Freudenberg bert@freudenbergs.de:
On 22.11.2008, at 01:15, Matthias Korn wrote:
Hi,
thanks for your hints. I also found ColorForm>>replaceColor:with: which does what you describe. But it is unfortunately not what I was looking for. I wasn't very clear in my original post:
I (now) have a gray-scale image which I want to colorize, that is I want to change the hue of the image and not just replace a color with another (or floodfill for that matter).
Hope you guys have some ideas. I tried searching with the Method Finder, but my poor english didn't take me very far.
Use a color map. Your grayscale image could be 8 bits, so with a 256 entries palette you can map that to any color(s) you want. Color maps are used in ColorForm, or directly with BitBlt.
- Bert -