Coloring images with transparant parts

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Coloring images with transparant parts

Matthias Korn-4
Hi all,

I have a .png or .gif image (e.g. an ImageMorph) with transparent parts
(e.g. a circle where the outer part is transparent). I now want to have
this one image and color it programmatically with other colors (e.g. the
circle appearing in slight red, green, blue ...).

Is this possible to do with Squeak/Morphic? How?

Thanks,
Matthias
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Coloring images with transparant parts

Matthias Berth-2
Hi,

I know it is possible manually, using the paint box. I guess you could
fill using a transparent color. I would open the Method finder and
search for fill or floodfill. Don't have a squeak image in front of me
now, sorry.

HTH

Matthias

On Tue, Nov 18, 2008 at 3:08 PM, Matthias Korn
<[hidden email]> wrote:

> Hi all,
>
> I have a .png or .gif image (e.g. an ImageMorph) with transparent parts
> (e.g. a circle where the outer part is transparent). I now want to have
> this one image and color it programmatically with other colors (e.g. the
> circle appearing in slight red, green, blue ...).
>
> Is this possible to do with Squeak/Morphic? How?
>
> Thanks,
> Matthias
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Coloring images with transparant parts

K. K. Subramaniam
In reply to this post by Matthias Korn-4
On Tuesday 18 Nov 2008 7:38:27 pm Matthias Korn wrote:
> I have a .png or .gif image (e.g. an ImageMorph) with transparent parts
> (e.g. a circle where the outer part is transparent). I now want to have
> this one image and color it programmatically with other colors (e.g. the
> circle appearing in slight red, green, blue ...).
Take a look at SketchMorph>>recolorPixelsOfColor: method. Essentially, you
will have to make a new sketch by replacing colors in the color map of the
sketch's form.

HTH .. Subbu
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Coloring images with transparant parts

Matthias Korn-4
In reply to this post by Matthias Korn-4
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.

Thanks a lot.
Matthias


Am Tue, 18 Nov 2008 15:08:27 +0100
schrieb Matthias Korn <[hidden email]>:

> Hi all,
>
> I have a .png or .gif image (e.g. an ImageMorph) with transparent
> parts (e.g. a circle where the outer part is transparent). I now want
> to have this one image and color it programmatically with other
> colors (e.g. the circle appearing in slight red, green, blue ...).
>
> Is this possible to do with Squeak/Morphic? How?
>
> Thanks,
> Matthias
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners


--
Matthias Korn
Institut für Wirtschaftsinformatik
Fachbereich 5
Universität Siegen
Telefon: +49 (0) 271 / 23 67 660
Mobil: +49 (0) 176 / 700 17 17 8
Uni: +49 (0) 271/ 740 - 3382
eMail: [hidden email]
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Coloring images with transparant parts

Bert Freudenberg
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 -


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Coloring images with transparant parts

Matthias Korn-4
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 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 <[hidden email]>:

> 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 -
>
>
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners


--
Matthias Korn
Institut für Wirtschaftsinformatik
Fachbereich 5
Universität Siegen
Telefon: +49 (0) 271 / 23 67 660
Mobil: +49 (0) 176 / 700 17 17 8
Uni: +49 (0) 271/ 740 - 3382
eMail: [hidden email]
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Coloring images with transparant parts

Bert Freudenberg
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 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 <[hidden email]>:
>
>> 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 -
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> [hidden email]
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
> --
> Matthias Korn
> Institut für Wirtschaftsinformatik
> Fachbereich 5
> Universität Siegen
> Telefon: +49 (0) 271 / 23 67 660
> Mobil: +49 (0) 176 / 700 17 17 8
> Uni: +49 (0) 271/ 740 - 3382
> eMail: [hidden email]
> _______________________________________________
> Beginners mailing list
> [hidden email]
> http://lists.squeakfoundation.org/mailman/listinfo/beginners

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Coloring images with transparant parts

Matthias Korn-4
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 <[hidden email]>:

> 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 <[hidden email]>:
> >
> >> 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 -
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners