imagesetpixel — Set the RGB value of a pixel inside a previously opened or created image.
Set the RGB value of a pixel inside a previously opened or created image. An image can be loaded with imageload. An empty image can be created with imagecreate and saved with imagesave.
imagesetpixel iimagenum, ax, ay, ared, agreen, ablue
imagesetpixel iimagenum, kx, ky, kred, kgreen, kblue
iimagenum -- the reference of the image.. It should be a value returned by imageload or imagecreate.
ax (kx) -- horizontal pixel position (must be a float from 0 to 1).
ay (ky) -- vertical pixel position (must be a float from 0 to 1).
ared (kred) -- red value of the pixel (mapped to a float from 0 to 1).
agreen (kgreen) -- green value of the pixel (mapped to a float from 0 to 1).
ablue (kblue) -- blue value of the pixel (mapped to a float from 0 to 1).
Here is an example of the imagesetpixel opcode. It uses the file imageopcodes.csd.
Example 391. Example of the imagesetpixel opcode.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -n ;no sound output </CsOptions> <CsInstruments> sr=48000 ksmps=1 nchnls=2 ; this test .csd copies image.png into a new file 'imageout.png' giimage1 imageload "image.png" giimagew, giimageh imagesize giimage1 giimage2 imagecreate giimagew,giimageh instr 1 kndx = 0 kx_ linseg 0, p3, 1 ;print imagewidth and imageheigth of image.png prints "imagewidth = %f pixels, imageheigth = %f pixels\\n", giimagew, giimageh myloop: ky_ = kndx/(giimageh) kr_, kg_, kb_ imagegetpixel giimage1, kx_, ky_ imagesetpixel giimage2, kx_, ky_, kr_, kg_, kb_ loop_lt kndx, 0.5, giimageh, myloop endin instr 2 imagesave giimage2, "imageout.png" endin instr 3 imagefree giimage1 imagefree giimage2 endin </CsInstruments> <CsScore> i1 1 1 i2 2 1 i3 3 1 e </CsScore> </CsoundSynthesizer>