summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/examples/crop.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/examples/crop.c')
-rw-r--r--Build/source/libs/gd/libgd-src/examples/crop.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/Build/source/libs/gd/libgd-src/examples/crop.c b/Build/source/libs/gd/libgd-src/examples/crop.c
new file mode 100644
index 00000000000..bafb6df849c
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/examples/crop.c
@@ -0,0 +1,78 @@
+/* $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;
+}