summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-2.1.0/examples
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-2.1.0/examples')
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/CMakeLists.txt39
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/arc.c31
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/copyrotated.c91
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/crop.c78
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/flip.c75
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/gif.c52
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/nnquant.c64
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/noIcon.picbin63486 -> 0 bytes
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/noIcon.sgibin66605 -> 0 bytes
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/noIcon.tgabin153682 -> 0 bytes
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/noIconAlpha.tgabin153682 -> 0 bytes
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/test_crop_threshold.pngbin7919 -> 0 bytes
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/tgaread.c56
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/tiffread.c59
-rw-r--r--Build/source/libs/gd/libgd-2.1.0/examples/windows.c311
15 files changed, 0 insertions, 856 deletions
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/CMakeLists.txt b/Build/source/libs/gd/libgd-2.1.0/examples/CMakeLists.txt
deleted file mode 100644
index e31e67d408a..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/CMakeLists.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-include_directories (BEFORE "${GD_SOURCE_DIR}/src" "${CMAKE_BINARY_DIR}")
-
-SET(TESTS_FILES
- arc
- crop
- gif
- nnquant
- tgaread
-)
-
-if (JPEG_FOUND)
- LIST(APPEND TESTS_FILES copyrotated flip)
-endif (JPEG_FOUND)
-
-if (TIFF_FOUND)
- LIST(APPEND TESTS_FILES tiffread)
-endif (TIFF_FOUND)
-
-FOREACH(test_name ${TESTS_FILES})
- add_executable(${test_name} "${test_name}.c")
- target_link_libraries (${test_name} ${GD_LIB})
-ENDFOREACH(test_name)
-
-if(JPEG_FOUND)
- if(UNIX)
- target_link_libraries(copyrotated m)
- endif(UNIX)
-endif(JPEG_FOUND)
-
-if (WIN32 AND NOT MINGW AND NOT MSYS)
- add_executable(windows WIN32 "windows.c")
- target_link_libraries (windows ${GD_LIB})
-else (WIN32 AND NOT MINGW AND NOT MSYS)
- if (MINGW OR MSYS)
- add_executable(windows "windows.c")
- add_definitions("-mwindows")
- target_link_libraries(windows ${GD_LIB} stdc++ gdi32)
- endif (MINGW OR MSYS)
-endif (WIN32 AND NOT MINGW AND NOT MSYS)
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/arc.c b/Build/source/libs/gd/libgd-2.1.0/examples/arc.c
deleted file mode 100644
index 8e862833855..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/arc.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id$ */
-#include "gd.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-int main()
-{
- gdImagePtr im;
- FILE *fp;
- int cor_rad = 60;
- im = gdImageCreateTrueColor(400, 400);
- gdImageFilledRectangle(im, 0, 0, 399, 399, 0x00FFFFFF);
-
- gdImageFilledArc (im, cor_rad, 399 - cor_rad, cor_rad *2, cor_rad *2, 90, 180, 0x0, gdPie);
-
- fp = fopen("b.png", "wb");
- if (!fp) {
- fprintf(stderr, "Can't save png image.\n");
- gdImageDestroy(im);
- return 1;
- }
-#ifdef HAVE_LIBPNG
- gdImagePng(im, fp);
-#else
- printf("No PNG support. Cannot save image.\n");
-#endif
- fclose(fp);
-
- gdImageDestroy(im);
- return 0;
-}
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/copyrotated.c b/Build/source/libs/gd/libgd-2.1.0/examples/copyrotated.c
deleted file mode 100644
index 03e493d0ce0..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/copyrotated.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* $Id$ */
-#include "gd.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-
-gdImagePtr loadImage(const char *name)
-{
- FILE *fp;
- gdImagePtr im;
-
- fp = fopen(name, "rb");
- if (!fp) {
- fprintf(stderr, "Can't open jpeg file\n");
- return NULL;
- }
-
- im = gdImageCreateFromJpeg(fp);
- fclose(fp);
- return im;
-}
-
-int savePngImage(gdImagePtr im, const char *name)
-{
- FILE *fp;
- fp = fopen(name, "wb");
- if (!fp) {
- fprintf(stderr, "Can't save png image fromtiff.png\n");
- return 0;
- }
- gdImagePng(im, fp);
- fclose(fp);
- return 1;
-}
-
-int main(int argc, char **arg)
-{
- gdImagePtr im, im2;
- int new_width, new_height;
- double angle, a2;
-
- if (argc < 3) {
- fprintf(stderr, "Usage: copyrotated [angle in degree] [filename.png]\n");
- return 1;
- }
- angle = strtod(arg[1], 0);
- im = loadImage(arg[2]);
-
- if (!im) {
- fprintf(stderr, "Can't load PNG file <%s>", arg[1]);
- return 1;
- }
-
- /*
- cos adj hyp (cos = adjacent / hypothenus)
- sin op hyp (sin adjacent / hypothenus)
- + 10 pixels margin
- */
-
- /* to radian */
- a2 = angle * .0174532925;
-
- new_width = ceil(cos(a2) * gdImageSX(im)) +
- fabs(sin(a2) * gdImageSY(im));
- new_height = ceil(cos(a2) * gdImageSY(im)) +
- fabs(sin(a2) * gdImageSX(im));
-
-
- im2 = gdImageCreateTrueColor(new_width, new_height);
- if (!im2) {
- fprintf(stderr, "Can't create a new image");
- gdImageDestroy(im);
- return 1;
- }
-
- gdImageAlphaBlending(im2, 0);
- gdImageFilledRectangle(im2, 0, 0, gdImageSX(im2), gdImageSY(im2), gdTrueColorAlpha(127,0,0,127));
-
- gdImageCopyRotated(im2, im, new_width/2, new_height/2, 0, 0, gdImageSX(im), gdImageSY(im), angle);
- gdImageSaveAlpha(im2, 1);
- if (!savePngImage(im2, "rotated.png")) {
- fprintf(stderr, "Can't save PNG file rotated.png");
- gdImageDestroy(im);
- gdImageDestroy(im2);
- return 1;
- }
-
- gdImageDestroy(im2);
- gdImageDestroy(im);
- return 0;
-}
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/crop.c b/Build/source/libs/gd/libgd-2.1.0/examples/crop.c
deleted file mode 100644
index bafb6df849c..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/crop.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* $Id$ */
-
-#include "gd.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-void save_png(gdImagePtr im, const char *filename)
-{
- FILE *fp;
- fp = fopen(filename, "wb");
- if (!fp) {
- fprintf(stderr, "Can't save png image %s\n", filename);
- return;
- }
-#ifdef HAVE_LIBPNG
- gdImagePng(im, fp);
-#else
- printf("No PNG support. Cannot save image.\n");
-#endif
- fclose(fp);
-}
-
-gdImagePtr read_png(const char *filename)
-{
- FILE * fp;
- gdImagePtr im;
-
- fp = fopen(filename, "rb");
- if (!fp) {
- fprintf(stderr, "Can't read png image %s\n", filename);
- return NULL;
- }
-#ifdef HAVE_LIBPNG
- im = gdImageCreateFromPng(fp);
-#else
- im = NULL;
- printf("No PNG support. Cannot read image.\n");
-#endif
- fclose(fp);
- return im;
-}
-
-int main()
-{
- gdImagePtr im, im2;
-
- im = gdImageCreateTrueColor(400, 400);
-
- if (!im) {
- fprintf(stderr, "Can't create 400x400 TC image\n");
- return 1;
- }
-
- gdImageFilledRectangle(im, 19, 29, 390, 390, 0xFFFFFF);
- gdImageRectangle(im, 19, 29, 390, 390, 0xFF0000);
- save_png(im, "a1.png");
-
- im2 = gdImageCropAuto(im, GD_CROP_SIDES);
- if (im2) {
- save_png(im2, "a2.png");
- gdImageDestroy(im2);
- }
- gdImageDestroy(im);
-
- im = read_png("test_crop_threshold.png");
- if (!im) {
- return 1;
- }
-
- im2 = gdImageCropThreshold(im, 0xFFFFFF, 0.6);
- if (im2) {
- save_png(im2, "a4.png");
- gdImageDestroy(im2);
- }
-
- gdImageDestroy(im);
- return 0;
-}
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/flip.c b/Build/source/libs/gd/libgd-2.1.0/examples/flip.c
deleted file mode 100644
index 2399457b81b..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/flip.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* $Id$ */
-#include "gd.h"
-#include <stdio.h>
-#include <stdlib.h>
-gdImagePtr loadImage(const char *name)
-{
- FILE *fp;
- gdImagePtr im;
-
- fp = fopen(name, "rb");
- if (!fp) {
- fprintf(stderr, "Can't open jpeg file\n");
- return NULL;
- }
-
- im = gdImageCreateFromJpeg(fp);
- fclose(fp);
- return im;
-}
-
-int savePngImage(gdImagePtr im, const char *name)
-{
- FILE *fp;
- fp = fopen(name, "wb");
- if (!fp) {
- fprintf(stderr, "Can't save png image fromtiff.png\n");
- return 0;
- }
- gdImagePng(im, fp);
- fclose(fp);
- return 1;
-}
-
-int main(int argc, char **arg)
-{
- gdImagePtr im;
- int returncode = 0;
-
- if (argc < 2) {
- fprintf(stderr, "Usage: flip [filename.png]\n");
- return 1;
- }
-
- im = loadImage(arg[1]);
- if (!im) goto error;
- gdImageFlipHorizontal(im);
- if (!savePngImage(im, "flip_horizontal.png")) {
- goto error;
- }
- gdImageDestroy(im);
-
- im = loadImage(arg[1]);
- if (!im) goto error;
- gdImageFlipVertical(im);
- if (!savePngImage(im, "flip_vertical.png")) {
- goto error;
- }
- gdImageDestroy(im);
-
- im = loadImage(arg[1]);
- if (!im) goto error;
- gdImageFlipBoth(im);
- if (!savePngImage(im, "flip_both.png")) {
- goto error;
- }
- gdImageDestroy(im);
-
- goto done;
-
-error:
- returncode = 1;
-
-done:
- return returncode;
-}
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/gif.c b/Build/source/libs/gd/libgd-2.1.0/examples/gif.c
deleted file mode 100644
index d5103f086b3..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/gif.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <gd.h>
-
-int main(void)
-{
- int i;
- FILE * out;
-
- gdImagePtr im;
- gdImagePtr prev =NULL;
- int black;
-
- im = gdImageCreate(100, 100);
- if (!im) {
- fprintf(stderr, "can't create image");
- return 1;
- }
-
- out = fopen("anim.gif", "wb");
- if (!out) {
- fprintf(stderr, "can't create file %s", "anim.gif");
- return 1;
- }
-
- gdImageColorAllocate(im, 255, 255, 255); /* allocate white as side effect */
- gdImageGifAnimBegin(im, out, 1, -1);
-
- for(i = 0; i < 20; i++) {
- int r,g,b;
- im = gdImageCreate(100, 100);
- r = rand() % 255;
- g = rand() % 255;
- b = rand() % 255;
-
- gdImageColorAllocate(im, 255, 255, 255); /* allocate white as side effect */
- black = gdImageColorAllocate(im, r, g, b);
- printf("(%i, %i, %i)\n",r, g, b);
- gdImageFilledRectangle(im, rand() % 100, rand() % 100, rand() % 100, rand() % 100, black);
- gdImageGifAnimAdd(im, out, 1, 0, 0, 10, 1, prev);
-
- if(prev) {
- gdImageDestroy(prev);
- }
- prev = im;
- }
-
- gdImageGifAnimEnd(out);
- fclose(out);
-
- return 0;
-} \ No newline at end of file
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/nnquant.c b/Build/source/libs/gd/libgd-2.1.0/examples/nnquant.c
deleted file mode 100644
index 33ed523266e..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/nnquant.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* $Id$ */
-
-#include "gd.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-void save_png(gdImagePtr im, const char *filename)
-{
- FILE *fp;
- fp = fopen(filename, "wb");
- if (!fp) {
- fprintf(stderr, "Can't save png image %s\n", filename);
- return;
- }
-#ifdef HAVE_LIBPNG
- gdImagePng(im, fp);
-#else
- printf("No PNG support. Cannot save image.\n");
-#endif
- fclose(fp);
-}
-
-int main()
-{
-#ifdef HAVE_JPEG
- gdImagePtr im, im2;
- FILE *fp;
- char path[2048];
-
- fp=fopen("resampledbug.jpeg", "rb");
- if (!fp) {
- fprintf(stderr, "Can't load /home/pierre/IM3801.jpg\n");
- return 1;
- }
-
- im = gdImageCreateFromJpeg(fp);
- fclose(fp);
- if (!im) {
- fprintf(stderr, "Can't load TIFF image %s\n", path);
- return 1;
- }
-
- im2 = gdImageNeuQuant(im, 256, 3);
-
- if (im2) {
- gdImageSaveAlpha(im2, 1);
- save_png(im2, "a_nnquant.png");
- gdImageDestroy(im2);
- } else {
- printf("neu quant failed.\n");
- }
-
- gdImageTrueColorToPalette(im, 1, 256);
-
- gdImageSaveAlpha(im, 1);
- save_png(im, "a_jquant_dither.png");
-
- gdImageDestroy(im);
-#else
- printf("JPEG support is required for this example. Please recompile GD with JPEG or change this example to use another format as input.");
- return 1;
-#endif
- return 0;
-}
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.pic b/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.pic
deleted file mode 100644
index 8335d3a2a28..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.pic
+++ /dev/null
Binary files differ
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.sgi b/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.sgi
deleted file mode 100644
index 98aac523c10..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.sgi
+++ /dev/null
Binary files differ
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.tga b/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.tga
deleted file mode 100644
index 7063fac97bf..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/noIcon.tga
+++ /dev/null
Binary files differ
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/noIconAlpha.tga b/Build/source/libs/gd/libgd-2.1.0/examples/noIconAlpha.tga
deleted file mode 100644
index 3af87b47b67..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/noIconAlpha.tga
+++ /dev/null
Binary files differ
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/test_crop_threshold.png b/Build/source/libs/gd/libgd-2.1.0/examples/test_crop_threshold.png
deleted file mode 100644
index 4a9dff1a815..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/test_crop_threshold.png
+++ /dev/null
Binary files differ
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/tgaread.c b/Build/source/libs/gd/libgd-2.1.0/examples/tgaread.c
deleted file mode 100644
index a8e080782b2..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/tgaread.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* $Id$ */
-/*
- * You can fetch a set of samples TIFF images here:
- * ftp://ftp.remotesensing.org/pub/libtiff/
- * (pics-x.y.z.tar.gz)
- */
-
-#include <gd.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int main()
-{
- gdImagePtr im;
- FILE *fp;
- char path[4][2048];
- int i;
- char dst[2048];
-
- sprintf(path[0], "noIconAlpha.tga");
- sprintf(path[1], "noIcon.tga");
-
- for (i = 0; i < 2; i++) {
- printf("opening %s\n", path[i]);
- fp = fopen(path[i], "rb");
- if (!fp) {
- printf("failed, cannot open file\n");
- return 1;
- }
-
- im = gdImageCreateFromTga(fp);
- fclose(fp);
- if (!im) {
- fprintf(stderr, "Can't load TIFF image %s\n", path[i]);
- return 1;
- }
-
-
- sprintf(dst, "%i.png", i);
-
- fp = fopen(dst, "wb");
- if (!fp) {
- fprintf(stderr, "Can't save png image fromtiff.png\n");
- gdImageDestroy(im);
- return 1;
- }
-#ifdef HAVE_LIBPNG
- gdImagePng(im, fp);
-#else
- printf("No PNG support. Cannot save image.\n");
-#endif
- fclose(fp);
- gdImageDestroy(im);
- }
- return 0;
-}
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/tiffread.c b/Build/source/libs/gd/libgd-2.1.0/examples/tiffread.c
deleted file mode 100644
index fe63ce00b2c..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/tiffread.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* $Id$ */
-/*
- * You can fetch a set of samples TIFF images here:
- * ftp://ftp.remotesensing.org/pub/libtiff/
- * (pics-x.y.z.tar.gz)
- */
-
-#include <gd.h>
-#include <stdio.h>
-#include <stdlib.h>
-int main()
-{
- gdImagePtr im;
- FILE *fp;
- char path[9][2048];
- int i;
- char dst[2048];
-
- sprintf(path[0], "cramps-tile.tif");
- sprintf(path[1], "cramps.tif");
- sprintf(path[2], "ycbcr-cat.tif");
- sprintf(path[3], "jello.tif");
- sprintf(path[4], "caspian.tif");
- sprintf(path[5], "strike.tif");
- sprintf(path[6], "off_luv24.tif");
- sprintf(path[7], "off_l16.tif");
- sprintf(path[8], "fax2d.tif");
-
- for (i = 0; i < 9; i++) {
- printf("opening %s\n", path[i]);
- fp = fopen(path[i], "rb");
- if (!fp) {
- printf("failed, cannot open file\n");
- return 1;
- }
-
- im = gdImageCreateFromTiff(fp);
- fclose(fp);
- if (!im) {
- fprintf(stderr, "Can't load TIFF image %s\n", path[i]);
- return 1;
- }
-
-
- sprintf(dst, "%i.png", i);
-
- fp = fopen(dst, "wb");
- if (!fp) {
- fprintf(stderr, "Can't save png image fromtiff.png\n");
- gdImageDestroy(im);
- return 1;
- }
-
- gdImagePng(im, fp);
- fclose(fp);
- gdImageDestroy(im);
- }
- return 0;
-}
diff --git a/Build/source/libs/gd/libgd-2.1.0/examples/windows.c b/Build/source/libs/gd/libgd-2.1.0/examples/windows.c
deleted file mode 100644
index 55976386f4e..00000000000
--- a/Build/source/libs/gd/libgd-2.1.0/examples/windows.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
-Sample usage of GD on windows. This little program opens a window, fetch its DIB
-and assigns to a GD truecolor image.
-
-Thanks to Mateusz Loskot (http://mateusz.loskot.net) for the AttachBuffer function!
-$Id$
-*/
-#include <windows.h>
-#include <gd.h>
-#include <gdfontg.h>
-#include <gdfontl.h>
-
-
-gdImagePtr gdImageTrueColorAttachBuffer(int* buffer, int sx, int sy, int stride)
-{
- int i;
- int height;
- int* rowptr;
- gdImagePtr im;
- im = (gdImage *) malloc (sizeof (gdImage));
- if (!im) {
- return 0;
- }
- memset (im, 0, sizeof (gdImage));
-
-#if 0
- if (overflow2(sizeof (int *), sy)) {
- return 0;
- }
-#endif
-
- im->tpixels = (int **) malloc (sizeof (int *) * sy);
- if (!im->tpixels) {
- free(im);
- return 0;
- }
-
- im->polyInts = 0;
- im->polyAllocated = 0;
- im->brush = 0;
- im->tile = 0;
- im->style = 0;
-
- height = sy;
- rowptr = buffer;
- if (stride < 0) {
- int startoff = (height - 1) * stride;
- rowptr = buffer - startoff;
- }
-
- i = 0;
- while (height--) {
- im->tpixels[i] = rowptr;
- rowptr += stride;
- i++;
- }
-
- im->sx = sx;
- im->sy = sy;
- im->transparent = (-1);
- im->interlace = 0;
- im->trueColor = 1;
- im->saveAlphaFlag = 0;
- im->alphaBlendingFlag = 1;
- im->thick = 1;
- im->AA = 0;
- im->cx1 = 0;
- im->cy1 = 0;
- im->cx2 = im->sx - 1;
- im->cy2 = im->sy - 1;
- return im;
-}
-
-void gdImageDetachBuffer(gdImagePtr im)
-{
- free(im->tpixels);
- free(im);
-}
-
-
-BITMAPINFO gdCreateBmp(int width, int height)
-{
- BITMAPINFO bmp_info;
-
- // Configure bitmap properties
-
- ZeroMemory(&bmp_info, sizeof(BITMAPINFO));
- bmp_info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- bmp_info.bmiHeader.biWidth = width;
- bmp_info.bmiHeader.biHeight = height;
- bmp_info.bmiHeader.biPlanes = 1;
- bmp_info.bmiHeader.biBitCount = 32;
- bmp_info.bmiHeader.biCompression = BI_RGB;
- bmp_info.bmiHeader.biSizeImage = 0;
- bmp_info.bmiHeader.biXPelsPerMeter = 0;
- bmp_info.bmiHeader.biYPelsPerMeter = 0;
- bmp_info.bmiHeader.biClrUsed = 0;
- bmp_info.bmiHeader.biClrImportant = 0;
- return bmp_info;
-}
-
-LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
-
-int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
- PSTR szCmdLine, int iCmdShow)
-{
- static TCHAR szAppName[] = TEXT ("Bezier") ;
- HWND hwnd ;
- MSG msg ;
- WNDCLASS wndclass ;
-
- wndclass.style = CS_HREDRAW | CS_VREDRAW ;
- wndclass.lpfnWndProc = WndProc ;
- wndclass.cbClsExtra = 0 ;
- wndclass.cbWndExtra = 0 ;
- wndclass.hInstance = hInstance ;
- wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
- wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
- wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
- wndclass.lpszMenuName = NULL ;
- wndclass.lpszClassName = szAppName ;
-
- if (!RegisterClass (&wndclass)) {
- // UNICODE-Compilierung ist die einzige realistische Fehlermöglichkeit
- MessageBox (NULL, TEXT ("Programm arbeitet mit Unicode und setzt Windows NT voraus!"),
- szAppName, MB_ICONERROR) ;
- return 0 ;
- }
-
- hwnd = CreateWindow (szAppName, TEXT ("Bezierkurven"),
- WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, CW_USEDEFAULT,
- CW_USEDEFAULT, CW_USEDEFAULT,
- NULL, NULL, hInstance, NULL) ;
-
- ShowWindow (hwnd, iCmdShow) ;
- UpdateWindow (hwnd) ;
-
- while (GetMessage (&msg, NULL, 0, 0)) {
- TranslateMessage (&msg) ;
- DispatchMessage (&msg) ;
- }
- return msg.wParam ;
-}
-
-void DrawBezier (HDC hdc, POINT apt[])
-{
- PolyBezier (hdc, apt, 4) ;
-
- MoveToEx (hdc, apt[0].x, apt[0].y, NULL) ;
- LineTo (hdc, apt[1].x, apt[1].y) ;
-
- MoveToEx (hdc, apt[2].x, apt[2].y, NULL) ;
- LineTo (hdc, apt[3].x, apt[3].y) ;
-}
-
-
-void gdDrawImage(HDC hdc, RECT *rc)
-{
- HDC mem_dc;
- BITMAPINFO bmp_info;
- void* bits;
- HBITMAP bmp, temp;
- gdImagePtr im;
- int width, height, stride;
- int white, black, blue, red;
- char *s = "Hello world!";
- gdFontPtr lfont, gfont;
-
- width = rc->right - rc->left;
- height = rc->bottom - rc->top;
-
- bmp_info = gdCreateBmp(width, height);
-
- // Create memory device context
- mem_dc = CreateCompatibleDC(hdc);
- if (!mem_dc) {
- MessageBox(NULL, "Can't create a compatible DC!", "Error!", MB_ICONEXCLAMATION | MB_OK);
- return;
- }
-
- // bits points to a shared buffer of pixels
- bits = NULL;
- bmp = CreateDIBSection(mem_dc, &bmp_info, DIB_RGB_COLORS, (void**)&bits, 0, 0);
-
- // Selecting the object before doing anything allows you to use libgd
- // together with native Windows GDI.
- temp = (HBITMAP)SelectObject(mem_dc, bmp);
-
- /*stride = ((width * 1 + 3) >> 2) << 2;*/
- // always uses 32bit in BMPINFO
- stride = width;
- im = NULL;
-
- // Attach shared buffer of pixels to GD image
- // Negative stride places 0,0 in upper-left corner
- im = gdImageTrueColorAttachBuffer((int*)bits, width, height, -stride);
- if (!im) {
- MessageBox(NULL, "GD image creation failed!", "Error!", MB_ICONEXCLAMATION | MB_OK);
- return;
- }
-
- // Start of GD drawing
- white = gdImageColorAllocate(im, 255, 255, 255);
- black = gdImageColorAllocate(im, 0, 0, 0);
- blue = gdImageColorAllocate(im, 0, 0, 255);
-
- // Allocate the color red, 50% transparent.
- red = gdImageColorAllocateAlpha(im, 255, 0, 0, 64);
-
- // Erase background with white color
- gdImageFilledRectangle(im, 0, 0, width, height, 0xFF0000);
-
- lfont = gdFontGetLarge();
- gfont = gdFontGetGiant();
-
- // Draw a dashed line from the upper left corner to the lower right corner.
- gdImageFilledRectangle(im, 25, 25, 100, 100, blue);
-
- gdImageChar(im, gfont, 35, 35, 'Q', white);
- gdImageFilledRectangle(im, 50, 50, 75, 175, red);
- gdImageLine(im, 0, 0, 150, 150, black);
-
- gdImageString(im, gdFontGetLarge(),
- im->sx / 2 - (strlen(s) * lfont->w / 2),
- im->sy / 2 - lfont->h / 2,
- (unsigned char*)s, black);
-
- // Copy drawing from memory context (shared bitmap buffer) to screen DC.
- BitBlt(hdc, rc->left, rc->top, width, height, mem_dc, 0, 0, SRCCOPY);
-
- // Free
- gdImageDetachBuffer(im);
- SelectObject(mem_dc, temp);
- DeleteObject(bmp);
- DeleteObject(mem_dc);
-}
-
-LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- static POINT apt[4] ;
- HDC hdc ;
- int cxClient, cyClient ;
- PAINTSTRUCT ps ;
- RECT rc;
-
- GetClientRect(hwnd, &rc);
-
- switch (message) {
- case WM_SIZE:
- cxClient = LOWORD (lParam) ;
- cyClient = HIWORD (lParam) ;
-
- apt[0].x = cxClient / 4 ;
- apt[0].y = cyClient / 2 ;
-
- apt[1].x = cxClient / 2 ;
- apt[1].y = cyClient / 4 ;
-
- apt[2].x = cxClient / 2 ;
- apt[2].y = 3 * cyClient / 4 ;
-
- apt[3].x = 3 * cxClient / 4 ;
- apt[3].y = cyClient / 2 ;
- return 0 ;
-
- case WM_LBUTTONDOWN:
- case WM_RBUTTONDOWN:
- case WM_MOUSEMOVE:
- if (wParam & MK_LBUTTON || wParam & MK_RBUTTON) {
- hdc = GetDC (hwnd) ;
-
- // alte Kurve löschen (mit Weiß übermalen)
- SelectObject (hdc, GetStockObject (WHITE_PEN)) ;
- DrawBezier (hdc, apt) ;
-
- if (wParam & MK_LBUTTON) {
- apt[1].x = LOWORD (lParam) ;
- apt[1].y = HIWORD (lParam) ;
- }
-
- if (wParam & MK_RBUTTON) {
- apt[2].x = LOWORD (lParam) ;
- apt[2].y = HIWORD (lParam) ;
- }
-
- // neue Kurve (mit Schwarz) zeichnen
- SelectObject (hdc, GetStockObject (BLACK_PEN)) ;
- gdDrawImage(hdc, &rc);
- DrawBezier (hdc, apt) ;
- ReleaseDC (hwnd, hdc) ;
- }
- return 0 ;
-
-
- case WM_PAINT:
- hdc = BeginPaint (hwnd, &ps) ;
-
- GetClientRect(hwnd, &rc);
- gdDrawImage(hdc, &rc);
- DrawBezier (hdc, apt) ;
-
- EndPaint (hwnd, &ps) ;
- return 0 ;
-
- case WM_DESTROY:
- PostQuitMessage (0) ;
- return 0 ;
- }
- return DefWindowProc (hwnd, message, wParam, lParam) ;
-}