imagegetpixel

imagegetpixel — Retourne les valeurs RVB d'un pixel d'une image précédemment ouverte ou créée.

Description

Retourne les valeurs RVB d'un pixel d'une image précédemment ouverte ou créée. On peut charger une image avec imageload. On peut créer un image vide avec imagecreate.

Syntaxe

ared, agreen, ablue imagegetpixel iimagenum, ax, ay
kred, kgreen, kblue imagegetpixel iimagenum, kx, ky

Initialisation

iimagenum -- la référence de l'image. C'est une valeur retournée par imageload ou par imagecreate.

Exécution

ax (kx) -- position horizontale du pixel (un nombre flottant compris entre 0 et 1).

ay (ky) -- position verticale du pixel (un nombre flottant compris entre 0 et 1).

ared (kred) -- valeur de rouge du pixel (ramenée à un nombre flottant compris entre 0 et 1).

agreen (kgreen) -- valeur de vert du pixel (ramenée à un nombre flottant compris entre 0 et 1).

ablue (kblue) -- valeur de bleue du pixel (ramenée à un nombre flottant compris entre 0 et 1).

Exemples

Voici un exemple de l'opcode imagegetpixel. Il utilise les fichiers imageopcodesdemo2.csd, test1.png et test2.png.

Exemple 408. Exemple de l'opcode imagegetpixel.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
; Audio out   Audio in
-odac           -iadc    ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o imageopcodesdemo2.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>
 
sr      =      	48000 
ksmps  	=     	100
nchnls	=	2

;By Cesare Marilungo 2008
zakinit 10,1

;Load the image - should be 512x512 pixels
giimage imageload "test1.png"
;giimage imageload "test2.png" ;--try this too
giimagew, giimageh imagesize giimage

giwave ftgen 1, 0, 1024, 10, 1
gifrqs ftgen 2,0,512,-5, 1,512,10
giamps ftgen 3, 0, 512, 10, 1

	instr 100

kindex = 0
icnt = giimageh
kx_ linseg 0, p3, 1
kenv linseg 0, .2, 500, p3 - .4, 500, .2, 0

; Read a column of pixels and store the red values
; inside the table 'giamps'
loop:
    ky_ = kindex/giimageh

    ;Get the pixel color values at kx_, ky_
    kred, kgreen, kblue imagegetpixel giimage, kx_, ky_

    ;Write the red values inside the table 'giamps'
    tablew kred, kindex, giamps
    kindex = kindex+1

if (kindex < icnt) kgoto loop

; Use an oscillator bank (additive synthesis) to generate sound
; setting amplitudes for each partial according to the image
asig adsynt kenv, 220, giwave, gifrqs, giamps, icnt, 2
outs asig, asig

	endin

	instr 101
; Free memory used by the image
imagefree giimage
	endin

</CsInstruments>
<CsScore>

t 0 60

i100 1 20 
i101 21 1

e

</CsScore>
</CsoundSynthesizer>


Voir aussi

imageload, imagecreate, imagesize, imagesave, imagesetpixel, imagefree

Crédits

Auteur : Cesare Marilungo

Nouveau dans la version 5.08