int main(void) { gdImagePtr im; int white, black, r; gdPointPtr points; im = gdImageCreate(100, 100); if (!im) exit(EXIT_FAILURE); white = gdImageColorAllocate(im, 0xff, 0xff, 0xff); black = gdImageColorAllocate(im, 0, 0, 0); gdImageFilledRectangle(im, 0, 0, 99, 99, white); points = (gdPointPtr)gdCalloc(3, sizeof(gdPoint)); if (!points) { gdImageDestroy(im); exit(EXIT_FAILURE); } points[0].x = 10; points[0].y = 10; points[1].x = 50; points[1].y = 70; points[2].x = 90; points[2].y = 30; gdImageOpenPolygon(im, points, 3, black); r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimageopenpolygon/gdimageopenpolygon3.png", im); gdFree(points); gdImageDestroy(im); if (!r) exit(EXIT_FAILURE); return EXIT_SUCCESS; }
int main(void) { gdImagePtr im; int white, black, r; im = gdImageCreate(100, 100); if (!im) exit(EXIT_FAILURE); white = gdImageColorAllocate(im, 0xff, 0xff, 0xff); black = gdImageColorAllocate(im, 0, 0, 0); gdImageFilledRectangle(im, 0, 0, 99, 99, white); gdImageOpenPolygon(im, NULL, 0, black); /* no effect */ gdImageOpenPolygon(im, NULL, -1, black); /* no effect */ r = gdAssertImageEqualsToFile(GDTEST_TOP_DIR "/gdimageopenpolygon/gdimageopenpolygon0.png", im); gdImageDestroy(im); if (!r) exit(EXIT_FAILURE); return EXIT_SUCCESS; }
result_t Image::openPolygon(v8::Local<v8::Array> points, int32_t color) { if (!m_image) return CHECK_ERROR(CALL_E_INVALID_CALL); std::vector < gdPoint > pts; result_t hr = getPoints(points, pts); if (hr < 0) return hr; gdImageOpenPolygon(m_image, pts.data(), (int32_t) pts.size(), color); return 0; }