[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