VgaGames4

VgaGames4 - image man-pages

[.. upper level ..]

# Image functions

Load, create, draw and copy images.

- Enumerations and Structures
- VG_COLORS
- struct VG_ImagecopyAttr
- struct VG_ImagecopyAttrImage
- struct VG_ImagecopyAttrPixel
- struct VG_PixelColor
- struct VG_Point
- Creating and destroying images
- vg4->image->create()
  Create image.
- vg4->image->load()
  Load image from file.
- vg4->image->clone()
  Clone image creating a new one.
- vg4->image->destroy()
  Destroy image.
- vg4->image->destroyall()
  Destroy all images.
- Modifying images
- vg4->image->clear()
  Clear an image.
- vg4->image->copy()
  Copy image onto another image.
- vg4->image->fill()
  Fill image with a color.
- vg4->image->draw_point()
  Draw a pixel onto an image.
- vg4->image->draw_points()
  Draw pixels onto an image.
- vg4->image->draw_line()
  Draw a line onto an image.
- vg4->image->draw_rect()
  Draw a rectangle onto an image.
- vg4->image->draw_circle()
  Draw a circle onto an image.
- Miscellaneous functions
- vg4->image->getpoint()
  Get a pixel of an image.
- vg4->image->getname()
  Get filename of an image, if any.
- vg4->image->getsize()
  Get size of an image.
- vg4->image->save()
  Save image to file.
- vg4->image->tobase64()
  Convert image to base64.
- vg4->image->attr_sum()
  Sum two image-copy attributes.

## Example

    /* create an image, draw figures into it and show it */

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/types.h>
    #include <unistd.h>
    #include <errno.h>
    #include <vgagames4.h>

    int main(int argc, char **argv) {
      struct VG_Image *imgp;
      int imgw, imgh, radius;
      struct VG_Rect rect;

      (void)argc; (void)argv;

      /* initialize and open window */
      if (!VG_init("test")) { exit(1); }
      if (!vg4->window->open(VG_WINDOW_SIZE_LOW, VG_WINDOW_SCALE_BEST)) { VG_dest(); exit(1); }

      /* create image */
      imgw = imgh = 100;
      imgp = vg4->image->create(imgw, imgh);

      /* fill image with grey color */
      vg4->image->fill(imgp, VG_COLOR_RGB(64, 64, 64));

      /* draw a filled circle */
      radius = 40;
      vg4->image->draw_circle(imgp, imgw / 2, imgh / 2, radius, VG_COLOR_YELLOW, VG_TRUE);

      /* draw a rectangle around the circle */
      rect.x = imgw / 2 - radius;
      rect.w = radius * 2 + 1;
      rect.y = imgh / 2 - radius;
      rect.h = radius * 2 + 1;
      vg4->image->draw_rect(imgp, &rect, VG_COLOR_RED, VG_FALSE);

      /* draw two lines */
      vg4->image->draw_line(imgp, 0, 0, imgw - 1, imgh - 1, VG_COLOR_TURQUOISE);
      vg4->image->draw_line(imgp, imgw - 1, 0, 0, imgh - 1, VG_COLOR_TURQUOISE);

      /* copy image to window */
      vg4->window->copy(imgp, NULL, NULL);
      vg4->window->flush();

      sleep(5);

      /* destroy and exit */
      VG_dest();
      exit(0);
    }