imagegetpixel
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## imagegetpixel

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

## Description

Opcode du greffon image.

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 454. 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

Précédent | Niveau supérieur | Suivant
imagefree | Sommaire | imageload