imagesave
Prev | Orchestra Opcodes and Operators | Next

## imagesave

imagesave — Save a previously created image.

## Description

Plugin opcode in image. This opcode is part of the plugin repository and has to be installed separately. The plugin repository can be found here: https://github.com/csound/plugins

Save a previously created image. An empty image can be created with imagecreate and its pixel RGB values can be set with imagesetpixel. The image will be saved in PNG format.

## Syntax

    imagesave iimagenum, filename

## Initialization

iimagenum -- the reference of the image to be save. It should be a value returned by imagecreate.

filename -- The filename to use to save the image.

## Examples

Here is an example of the imagesave opcode. It uses the file imageopcodes.csd and imageOpcode01.png.

Example 463. Example of the imagesave opcode.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -n ;no sound output
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    0dbfs  = 1
    nchnls = 2

    ; by Cesare Marilungo 2008
    ; additions by Menno Knevel 2021
    ; image opcodes need a black canvas- black = no sound!

    giimage1 imageload "imageOpcode01.png"              ; load this image
    giimagew, giimageh imagesize giimage1               ; get dimensions of imageOpcode01.png
    giimageNEW imagecreate giimagew,giimageh            ; and use those same dimensions for the new image

    instr 1 ; copies imageOpcode01.png and changes it

    kndx = 0
    kx linseg 0, p3, 1
    prints "\nwidth = %d pixels, heigth = %d pixels\n\n", giimagew, giimageh

    myloop:
    ky = kndx/(giimageh)                                ; y-axis
    krd, kgn, kbl imagegetpixel giimage1, kx, ky        ; get pixels from 'old' image
    imagesetpixel giimageNEW, kx*.9, ky*.5, krd, kgn, kbl; redesign the image
    loop_lt kndx, 0.5, giimageh, myloop
    endin

    instr 2
    imagesave giimageNEW, "imageOUT.png"                ; save this new image
    endin

    instr 3
    imagefree giimage1                                  ; unload images
    imagefree giimageNEW
    endin

    </CsInstruments>
    <CsScore>

    i1 1 1
    i2 2 1
    i3 3 .1
    e
    </CsScore>
    </CsoundSynthesizer>

This is what the saved image imageOUT.png looks like:

## See Also

imageload, imagecreate, imagesize, imagegetpixel, imagesetpixel, imagefree

## Credits

Author: Cesare Marilungo

New in version 5.08

Prev | Up | Next
imageload | Home | imagesetpixel