[etoys-dev] How can I access the individual pixels in an image
Bert Freudenberg
bert at freudenbergs.de
Fri May 25 15:00:58 EDT 2012
Also, especially for beginners, you can just leave out alpha, using #r:g:b: instead of #r:g:b:alpha:.
And you can use "named colors":
new := old red < 0.5 ifTrue: [Color blue] ifFalse: [Color yellow].
And, for advanced fun without the RGB color model, use #h:s:v: for creating the new color, and #hue, #saturation, and #brightness for reading. Hue is in degrees (0 to 360 on the color circle) and the others 0 to 1:
new := Color h: (old hue roundTo: 30) s: 1 v: 1 alpha: old alpha.
- Bert -
On 25.05.2012, at 20:32, Bert Freudenberg wrote:
> Well, for one, all these values are fractions in the range 0 to 1.
>
> If you use 0 in your example, the image will become fully transparent. If you use 1, it will be fully opaque.
>
> Since 16 bit forms store only 1 bit of alpha (and 5 bits each for red, green, and blue), you cannot do more than toggle that bit.
>
> If you want real translucency, create newForm with 32 bits of depth instead of 16. Then each component gets full 8 bits, and e.g. using an alpha of 0.5 will make the whole image half-transparent.
>
>
> On 25.05.2012, at 20:23, Steve Thomas wrote:
>
>> <Screen Shot 2012-05-25 at 2.22.06 PM.png>
>> I tried setting alpha to 50, but it didn't work, see script below.
>>
>> recolor
>> | oldForm newForm old new avg |
>> oldForm := ErnieRubberDuckie getGraphic.
>> newForm := Form extent: oldForm extent depth: 16.
>> 0
>> to: oldForm height - 1
>> do: [:y | 0
>> to: oldForm width - 1
>> do: [:x |
>> old := oldForm colorAt: x @ y.
>> avg := old red + old green + old blue / 3.
>> new := Color
>> r: old red * 0 + avg
>> g: old green * 0 + avg
>> b: old blue * 0 + avg
>> alpha: 50.
>> newForm colorAt: x @ y put: new]].
>> self setGraphic: newForm
-------------- n?chster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20120525/ceb301d5/attachment-0001.html>
-------------- n?chster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname : PastedGraphic-15.png
Dateityp : image/png
Dateigr??e : 5197 bytes
Beschreibung: nicht verf?gbar
URL : <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20120525/ceb301d5/attachment-0002.png>
-------------- n?chster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname : PastedGraphic-13.png
Dateityp : image/png
Dateigr??e : 9548 bytes
Beschreibung: nicht verf?gbar
URL : <http://lists.squeakland.org/pipermail/etoys-dev/attachments/20120525/ceb301d5/attachment-0003.png>
More information about the etoys-dev
mailing list