test.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /* Vampyre Imaging Library Demo
  2. test (C/C++, dll library usage, Win32/Linux)
  3. tested in MSVC 7.1, GCC 3.2
  4. written by Marek Mauder
  5. Simple test program that shows how to use Imaging library from C/C++
  6. environment.
  7. Important:
  8. Compiled Imaging library must be located somewhere on system's
  9. search path for this sample to work (usually VampyreImaging.dll
  10. in C:\Windows or libVampyreImaging.so in /lib).
  11. */
  12. #include "ImagingImport.h"
  13. #include "stdio.h"
  14. #ifdef __cplusplus
  15. using namespace Imaging;
  16. #endif
  17. int main(void)
  18. {
  19. TImageData Img;
  20. TColor32Rec * Col;
  21. int X = 0;
  22. int Major, Minor, Patch;
  23. /* load all library functions */
  24. if (!ImLoadLibrary())
  25. {
  26. printf("Error loading library");
  27. return 1;
  28. }
  29. /* get Imaging library version */
  30. ImGetVersion(&Major, &Minor, &Patch);
  31. printf("Imaging test (library version %d.%d.%d)\n", Major, Minor, Patch);
  32. /* initialize image data struct */
  33. ImInitImage(&Img);
  34. /* create new 256x256 32bit image with alpha */
  35. ImNewImage(256, 256, ifA8R8G8B8, &Img);
  36. /* draw diagonal line across the image */
  37. for (;X < Img.Width; X++)
  38. {
  39. Col = (TColor32Rec*)Img.Bits + X * Img.Width + X;
  40. Col->A = 0xff;
  41. Col->R = X;
  42. Col->G = 0xff - X;
  43. Col->B = X / 2;
  44. }
  45. /* save image to Targa format */
  46. ImSaveImageToFile("ctestimage.png", &Img);
  47. /* free image data */
  48. ImFreeImage(&Img);
  49. /* free library */
  50. ImFreeLibrary();
  51. printf("Image written to 'ctestimage.png'\n");
  52. return 0;
  53. }