public void TestGdCopyBlurredCpp()
    {
        do_testCpp();
        do_crosstestCpp();

        Assert.AreEqual(0, GlobalMembersGdtest.gdNumFailures());
    }
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdXXX_VERSION_STR(mjr, mnr, rev, ext) mjr "." mnr "." rev ext
        #define GDXXX_VERSION_STR
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdXXX_STR(s) gd.gdXXX_SSTR(s)
        #define GDXXX_STR
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdXXX_SSTR(s) #s
        #define GDXXX_SSTR
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define GD_VERSION_STRING "GD_MAJOR_VERSION" "." "GD_MINOR_VERSION" "." "GD_RELEASE_VERSION" GD_EXTRA_VERSION
        #define GD_VERSION_STRING
        #if _WIN32 || CYGWIN || _WIN32_WCE
        #if BGDWIN32
        #if NONDLL
        #define BGD_EXPORT_DATA_PROT
        #else
        #if __GNUC__
        #define BGD_EXPORT_DATA_PROT
        #else
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_EXPORT_DATA_PROT __declspec(dllexport)
        #define BGD_EXPORT_DATA_PROT
        #endif
        #endif
        #else
        #if __GNUC__
        #define BGD_EXPORT_DATA_PROT
        #else
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_EXPORT_DATA_PROT __declspec(dllimport)
        #define BGD_EXPORT_DATA_PROT
        #endif
        #endif
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_STDCALL __stdcall
        #define BGD_STDCALL
        #define BGD_EXPORT_DATA_IMPL
        #else
        #if HAVE_VISIBILITY
        #define BGD_EXPORT_DATA_PROT
        #define BGD_EXPORT_DATA_IMPL
        #else
        #define BGD_EXPORT_DATA_PROT
        #define BGD_EXPORT_DATA_IMPL
        #endif
        #define BGD_STDCALL
        #endif
        #if BGD_EXPORT_DATA_PROT_ConditionalDefinition1
        #if BGD_STDCALL_ConditionalDefinition1
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) rt __stdcall
        #define BGD_DECLARE
        #elif BGD_STDCALL_ConditionalDefinition2
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) rt
        #define BGD_DECLARE
        #else
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) rt BGD_STDCALLTangibleTempImmunity
        #define BGD_DECLARE
        #endif
        #elif BGD_EXPORT_DATA_PROT_ConditionalDefinition2
        #if BGD_STDCALL_ConditionalDefinition1
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) rt __stdcall
        #define BGD_DECLARE
        #elif BGD_STDCALL_ConditionalDefinition2
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) rt
        #define BGD_DECLARE
        #else
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) rt BGD_STDCALLTangibleTempImmunity
        #define BGD_DECLARE
        #endif
        #elif BGD_EXPORT_DATA_PROT_ConditionalDefinition3
        #if BGD_STDCALL_ConditionalDefinition1
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) __declspec(dllexport) rt __stdcall
        #define BGD_DECLARE
        #elif BGD_STDCALL_ConditionalDefinition2
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) __declspec(dllexport) rt
        #define BGD_DECLARE
        #else
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) __declspec(dllexport) rt BGD_STDCALLTangibleTempImmunity
        #define BGD_DECLARE
        #endif
        #elif BGD_EXPORT_DATA_PROT_ConditionalDefinition4
        #if BGD_STDCALL_ConditionalDefinition1
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) __declspec(dllimport) rt __stdcall
        #define BGD_DECLARE
        #elif BGD_STDCALL_ConditionalDefinition2
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) __declspec(dllimport) rt
        #define BGD_DECLARE
        #else
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) __declspec(dllimport) rt BGD_STDCALLTangibleTempImmunity
        #define BGD_DECLARE
        #endif
        #else
        #if BGD_STDCALL_ConditionalDefinition1
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) BGD_EXPORT_DATA_PROTTangibleTempImmunity rt __stdcall
        #define BGD_DECLARE
        #elif BGD_STDCALL_ConditionalDefinition2
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define BGD_DECLARE (rt) BGD_EXPORT_DATA_PROTTangibleTempImmunity rt
        #define BGD_DECLARE
        #else
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define Bgd.gd_DECLARE(rt) BGD_EXPORT_DATA_PROTTangibleTempImmunity rt BGD_STDCALLTangibleTempImmunity
        #define BGD_DECLARE
        #endif
        #endif
        #if __cplusplus
        #endif
        #if __cplusplus
        #endif
        #define GD_IO_H
        #if VMS
        #endif
        #if __cplusplus
        #endif
        #define gdMaxColors
        #define gdAlphaMax
        #define gdAlphaOpaque
        #define gdAlphaTransparent
        #define gdRedMax
        #define gdGreenMax
        #define gdBlueMax
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTrueColorGetAlpha(c) (((c) & 0x7F000000) >> 24)
        #define gdTrueColorGetAlpha
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTrueColorGetRed(c) (((c) & 0xFF0000) >> 16)
        #define gdTrueColorGetRed
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTrueColorGetGreen(c) (((c) & 0x00FF00) >> 8)
        #define gdTrueColorGetGreen
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTrueColorGetBlue(c) ((c) & 0x0000FF)
        #define gdTrueColorGetBlue
        #define gdEffectReplace
        #define gdEffectAlphaBlend
        #define gdEffectNormal
        #define gdEffectOverlay
        #define GD_TRUE
        #define GD_FALSE
        #define GD_EPSILON
        #define M_PI
        #define gdDashSize
        #define gdStyled
        #define gdBrushed
        #define gdStyledBrushed
        #define gdTiled
        #define gdTransparent
        #define gdAntiAliased
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gdImageCreatePalette gdImageCreate
        #define gdImageCreatePalette
        #define gdFTEX_LINESPACE
        #define gdFTEX_CHARMAP
        #define gdFTEX_RESOLUTION
        #define gdFTEX_DISABLE_KERNING
        #define gdFTEX_XSHOW
        #define gdFTEX_FONTPATHNAME
        #define gdFTEX_FONTCONFIG
        #define gdFTEX_RETURNFONTPATHNAME
        #define gdFTEX_Unicode
        #define gdFTEX_Shift_JIS
        #define gdFTEX_Big5
        #define gdFTEX_Adobe_Custom
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTrueColor(r, g, b) (((r) << 16) + ((g) << 8) + (b))
        #define gdTrueColor
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTrueColorAlpha(r, g, b, a) (((a) << 24) + ((r) << 16) + ((g) << 8) + (b))
        #define gdTrueColorAlpha
        #define gdArc
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gdPie gdArc
        #define gdPie
        #define gdChord
        #define gdNoFill
        #define gdEdged
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageTrueColor(im) ((im)->trueColor)
        #define gdImageTrueColor
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageSX(im) ((im)->sx)
        #define gdImageSX
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageSY(im) ((im)->sy)
        #define gdImageSY
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageColorsTotal(im) ((im)->colorsTotal)
        #define gdImageColorsTotal
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageRed(im, c) ((im)->trueColor ? (((c) & 0xFF0000) >> 16) : (im)->red[(c)])
        #define gdImageRed
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageGreen(im, c) ((im)->trueColor ? (((c) & 0x00FF00) >> 8) : (im)->green[(c)])
        #define gdImageGreen
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageBlue(im, c) ((im)->trueColor ? ((c) & 0x0000FF) : (im)->blue[(c)])
        #define gdImageBlue
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageAlpha(im, c) ((im)->trueColor ? (((c) & 0x7F000000) >> 24) : (im)->alpha[(c)])
        #define gdImageAlpha
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageGetTransparent(im) ((im)->transparent)
        #define gdImageGetTransparent
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageGetInterlaced(im) ((im)->interlace)
        #define gdImageGetInterlaced
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImagePalettePixel(im, x, y) (im)->pixels[(y)][(x)]
        #define gdImagePalettePixel
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageTrueColorPixel(im, x, y) (im)->tpixels[(y)][(x)]
        #define gdImageTrueColorPixel
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageResolutionX(im) (im)->res_x
        #define gdImageResolutionX
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdImageResolutionY(im) (im)->res_y
        #define gdImageResolutionY
        #define GD2_CHUNKSIZE
        #define GD2_CHUNKSIZE_MIN
        #define GD2_CHUNKSIZE_MAX
        #define GD2_VERS
        #define GD2_ID
        #define GD2_FMT_RAW
        #define GD2_FMT_COMPRESSED
        #define GD_FLIP_HORINZONTAL
        #define GD_FLIP_VERTICAL
        #define GD_FLIP_BOTH
        #define GD_CMP_IMAGE
        #define GD_CMP_NUM_COLORS
        #define GD_CMP_COLOR
        #define GD_CMP_SIZE_X
        #define GD_CMP_SIZE_Y
        #define GD_CMP_TRANSPARENT
        #define GD_CMP_BACKGROUND
        #define GD_CMP_INTERLACE
        #define GD_CMP_TRUECOLOR
        #define GD_RESOLUTION
        #if __cplusplus
        #endif
        #if __cplusplus
        #endif
        #define GDFX_H
        #if __cplusplus
        #endif
        #if __cplusplus
        #endif
        #define GDTEST_TOP_DIR
        #define GDTEST_STRING_MAX
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdAssertImageEqualsToFile(ex,ac) gd.gdTestImageCompareToFile(__FILE__,__LINE__,NULL,(ex),(ac))
        #define gdAssertImageEqualsToFile
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdAssertImageFileEqualsMsg(ex,ac) gd.gdTestImageCompareFiles(__FILE__,__LINE__,(ms),(ex),(ac))
        #define gdAssertImageFileEqualsMsg
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdAssertImageEquals(tc,ex,ac) CuAssertImageEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
        #define gdAssertImageEquals
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdAssertImageEqualsMsg(tc,ex,ac) CuAssertImageEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
        #define gdAssertImageEqualsMsg
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTestAssert(cond) _gd.gdTestAssert(__FILE__, __LINE__, "assert failed in <%s:%i>\n", (cond))
        #define gdTestAssert
    //C++ TO C# CONVERTER NOTE: The following #define macro was replaced in-line:
    //ORIGINAL LINE: #define gd.gdTestErrorMsg(...) _gd.gdTestErrorMsg(__FILE__, __LINE__, __VA_ARGS__)
        #define gdTestErrorMsg

    static int Main()
    {
        gdImageStruct im;
        gdImageStruct ex;
        IntPtr        fp;
        gdScatter     s = new gdScatter();

        GlobalMembersGdtest.CuTestImageResult r = new GlobalMembersGdtest.CuTestImageResult();

        fp = C.fopen(GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR + "/gdimagescatterex/bug00208.png", "rb");
        if (fp == IntPtr.Zero)
        {
            fprintf(stderr, "could not open file\n");
            return(1);
        }
        im = gd.gdImageCreateFromPng(new _iobuf(fp));
        C.fclose(fp);
        if (im == null)
        {
            fprintf(stderr, "could not create image\n");
            return(1);
        }

        s.sub        = 1;
        s.plus       = 3;
        s.seed       = 0;
        s.num_colors = 0;
        if (gd.gdImageScatterEx(im, s) == 0)
        {
            gd.gdImageDestroy(im);
            fprintf(stderr, "could not scatter\n");
            return(1);
        }

        fp = C.fopen(GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR + "/gdimagescatterex/bug00208_1.png", "rb");
        if (fp == IntPtr.Zero)
        {
            fprintf(stderr, "could not open file\n");
            gd.gdImageDestroy(im);
            return(1);
        }
        ex = gd.gdImageCreateFromPng(new _iobuf(fp));
        C.fclose(fp);
        if (ex == null)
        {
            fprintf(stderr, "could not create image\n");
            gd.gdImageDestroy(im);
            return(1);
        }
        r.pixels_changed = 0;
        GlobalMembersGdtest.gdTestImageDiff(im, ex, null, r);
        gd.gdImageDestroy(ex);
        gd.gdImageDestroy(im);
        if (r.pixels_changed > 10000)
        {
            fprintf(stderr, "too much diff: %d\n", r.pixels_changed);
            return(1);
        }
        return(0);
    }
    public void TestBug00020()
    {
        int error = 0;

        string path = string.Format("{0}/gdimagecopyrotated/bug00020_exp.png", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR);

        gdImageStruct im = gd.gdImageCreateTrueColor(WIDTH, WIDTH);

        gd.gdImageFilledRectangle(im, 0, 0, WIDTH, WIDTH, 0xFF0000);
        gd.gdImageColorTransparent(im, 0xFF0000);
        gd.gdImageFilledEllipse(im, WIDTH / 2, WIDTH / 2, WIDTH - 20, WIDTH - 10, 0x50FFFFFF);

        gdImageStruct im2 = gd.gdImageCreateTrueColor(WIDTH, WIDTH);

        gd.gdImageCopyRotated(im2, im, WIDTH / 2, WIDTH / 2, 0, 0, WIDTH, WIDTH, 60);

        if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, (path), (im2)) == 0)
        {
            error = 1;
        }

        gd.gdImageDestroy(im2);
        gd.gdImageDestroy(im);
        if (error != 0)
        {
            Assert.Fail("Error: {0}", error);
        }
    }
    public void TestBug00020Cpp()
    {
        int error = 0;

        string path = string.Format("{0}/gdimagecopyrotated/bug00020_exp.png", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR);

        using (var image = new Image(WIDTH, WIDTH, true))
        {
            image.FilledRectangle(0, 0, WIDTH, WIDTH, 0xFF0000);
            image.ColorTransparent(0xFF0000);
            image.FilledEllipse(WIDTH / 2, WIDTH / 2, WIDTH - 20, WIDTH - 10, 0x50FFFFFF);

            using (var image2 = new Image(WIDTH, WIDTH, true))
            {
                image2.CopyRotated(image, WIDTH / 2, WIDTH / 2, 0, 0, WIDTH, WIDTH, 60);

                if (GlobalMembersGdtest.TestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, image2) == 0)
                {
                    error = 1;
                }
            }
        }

        if (error != 0)
        {
            Assert.Fail("Error: {0}", error);
        }
    }
Ejemplo n.º 5
0
/* Return the largest difference between two corresponding pixels and
 * channels. */

    public static uint gdMaxPixelDiff(gdImageStruct a, gdImageStruct b)
    {
        int diff = 0;
        int x;
        int y;

        if (a == null || b == null || a.sx != b.sx || a.sy != b.sy)
        {
            return(uint.MaxValue);
        }

        for (x = 0; x < a.sx; x++)
        {
            for (y = 0; y < a.sy; y++)
            {
                int c1;
                int c2;

                c1 = gd.gdImageGetTrueColorPixel(a, x, y);
                c2 = gd.gdImageGetTrueColorPixel(b, x, y);
                if (c1 == c2)
                {
                    continue;
                }

                diff = GlobalMembersGdtest.max(diff, Math.Abs((((c1) & 0x7F000000) >> 24) - (((c2) & 0x7F000000) >> 24)));
                diff = GlobalMembersGdtest.max(diff, Math.Abs((((c1) & 0xFF0000) >> 16) - (((c2) & 0xFF0000) >> 16)));
                diff = GlobalMembersGdtest.max(diff, Math.Abs((((c1) & 0x00FF00) >> 8) - (((c2) & 0x00FF00) >> 8)));
                diff = GlobalMembersGdtest.max(diff, Math.Abs(((c1) & 0x0000FF) - ((c2) & 0x0000FF)));
            }     // for
        }         // for

        return((uint)diff);
    }
    public void TestBug00032Cpp()
    {
        //gd.gdSetErrorMethod(GlobalMembersGdtest.gdSilence);

        using (var tile = new Image(10, 10, true))
        {
            tile.Fill(0, 0, 0xFFFFFF);
            tile.Line(0, 0, 9, 9, 0xff0000);
            tile.ColorTransparent(0xFFFFFF);

            using (var image = new Image(50, 50, true))
            {
                image.FilledRectangle(0, 0, 25, 25, 0x00FF00);

                image.SetTile(tile);
                image.FilledRectangle(10, 10, 49, 49, GlobalMembersGdtest.DefineConstants.gdTiled);

                string path = Path.Combine(GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, "gdtiled", exp_img);
                if (GlobalMembersGdtest.TestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, image) == 0)
                {
                    Assert.Fail();
                }
            }
        }
    }
Ejemplo n.º 7
0
    public void TestGdTrivialResize()
    {
        do_test(300, 300, 600, 600);
        do_test(3200, 2133, 640, 427);

        Assert.AreEqual(0, GlobalMembersGdtest.gdNumFailures());
    }
Ejemplo n.º 8
0
    private static void do_testCpp(int x, int y, int nx, int ny)
    {
        using (Image image = mkwhiteCpp(x, y))
        {
            using (Image imageref = mkwhiteCpp(x, y))
            {
                using (var same = image.Scale(x, y))
                {
                    GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (image.GetPtr().__Instance != same.GetPtr().__Instance) ? 1 : 0);
                    GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (GlobalMembersGdtest.gdMaxPixelDiff(image, same) == 0) ? 1 : 0);
                    GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (GlobalMembersGdtest.gdMaxPixelDiff(imageref, same) == 0) ? 1 : 0);

                    /* Ensure that modifying im doesn't modify same (i.e. see if we
                     * can catch them accidentally sharing the same pixel buffer.) */
                    mkblack(image);
                    GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (GlobalMembersGdtest.gdMaxPixelDiff(imageref, same) == 0) ? 1 : 0);
                }
            }
        }

        /* Scale horizontally, vertically and both. */
        scaletestCpp(x, y, nx, y);
        scaletestCpp(x, y, x, ny);
        scaletestCpp(x, y, nx, ny);
    }
Ejemplo n.º 9
0
    } // scaletest

    private static void do_test(int x, int y, int nx, int ny)
    {
        gdImageStruct im    = mkwhite(x, y);
        gdImageStruct imref = mkwhite(x, y);

        gdImageStruct same = gd.gdImageScale(im, (uint)x, (uint)y);

        /* Trivial resize should be a straight copy. */
        GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (im != same) ? 1 : 0);
        GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (GlobalMembersGdtest.gdMaxPixelDiff(im, same) == 0) ? 1 : 0);
        GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (GlobalMembersGdtest.gdMaxPixelDiff(imref, same) == 0) ? 1 : 0);

        /* Ensure that modifying im doesn't modify same (i.e. see if we
         * can catch them accidentally sharing the same pixel buffer.) */
        mkblack(im);
        GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (GlobalMembersGdtest.gdMaxPixelDiff(imref, same) == 0) ? 1 : 0);

        gd.gdImageDestroy(same);
        gd.gdImageDestroy(im);

        /* Scale horizontally, vertically and both. */
        scaletest(x, y, nx, y);
        scaletest(x, y, x, ny);
        scaletest(x, y, nx, ny);
    }
Ejemplo n.º 10
0
    public void TestBug00077Cpp()
    {
        const string exp   = "bug00077_exp.png";
        int          error = 0;

        using (var image = new Image(11, 11, true))
        {
            image.FilledRectangle(0, 0, 10, 10, 0xFFFFFF);
            image.SetThickness(1);

            image.Line(0, 10, 0, 0, 0x0);
            image.Line(5, 10, 5, 0, 0x0);
            image.Line(10, 5, 0, 5, 0x0);
            image.Line(10, 10, 0, 10, 0x0);

            string path = string.Format("{0}/gdimageline/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, exp);

            if (GlobalMembersGdtest.TestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, image) == 0)
            {
                error = 1;
            }
        }

        if (error != 0)
        {
            Assert.Fail("Error: {0}", error);
        }
    }
Ejemplo n.º 11
0
    public void TestBug00077()
    {
        const string exp   = "bug00077_exp.png";
        int          error = 0;

        gdImageStruct im = gd.gdImageCreateTrueColor(11, 11);

        gd.gdImageFilledRectangle(im, 0, 0, 10, 10, 0xFFFFFF);
        gd.gdImageSetThickness(im, 1);

        gd.gdImageLine(im, 0, 10, 0, 0, 0x0);
        gd.gdImageLine(im, 5, 10, 5, 0, 0x0);
        gd.gdImageLine(im, 10, 5, 0, 5, 0x0);
        gd.gdImageLine(im, 10, 10, 0, 10, 0x0);

        string path = string.Format("{0}/gdimageline/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, exp);

        if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, (path), (im)) == 0)
        {
            error = 1;
        }

        gd.gdImageDestroy(im);

        if (error != 0)
        {
            Assert.Fail("Error: {0}", error);
        }
    }
Ejemplo n.º 12
0
    public void TestBug00088()
    {
        string[] files     = { "bug00088_1.png", "bug00088_2.png" };
        string[] files_exp = { "bug00088_1_exp.png", "bug00088_2_exp.png" };

        int       i;
        const int cnt   = 2;
        int       error = 0;

        for (i = 0; i < cnt; i++)
        {
            string path = string.Format("{0}/png/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, files[i]);

            gdImageStruct im = gd.gdImageCreateFromPng(path);

            if (im == null)
            {
                error |= 1;
                continue;
            }

            path = string.Format("{0}/png/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, files_exp[i]);
            if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, im) == 0)
            {
                error |= 1;
            }
            gd.gdImageDestroy(im);
        }
        if (error != 0)
        {
            Assert.Fail("Error: {0}.", error);
        }
    }
Ejemplo n.º 13
0
    public void TestBug00088Cpp()
    {
        string[] files     = { "bug00088_1.png", "bug00088_2.png" };
        string[] files_exp = { "bug00088_1_exp.png", "bug00088_2_exp.png" };

        int       i;
        const int cnt   = 2;
        int       error = 0;

        for (i = 0; i < cnt; i++)
        {
            string path = string.Format("{0}/png/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, files[i]);

            using (var image = new Image())
            {
                if (!image.CreateFromPng(path))
                {
                    error |= 1;
                    continue;
                }

                path = string.Format("{0}/png/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, files_exp[i]);
                if (GlobalMembersGdtest.TestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, image) == 0)
                {
                    error |= 1;
                }
            }
        }
        if (error != 0)
        {
            Assert.Fail("Error: {0}.", error);
        }
    }
    public void TestGdModesAndPalettes()
    {
        for (var method = gdInterpolationMethod.GD_BELL; method <= gdInterpolationMethod.GD_TRIANGLE; method++)     // GD_WEIGHTED4 is unsupported.
        {
            var im = new gdImageStruct[2];

            // printf("Method = %d\n", method);
            im[0] = gd.gdImageCreateTrueColor(X, Y);
            im[1] = gd.gdImageCreate(X, Y);

            for (int i = 0; i < 2; i++)
            {
                // printf("    %s\n", i == 0 ? "truecolor" : "palette");

                gd.gdImageFilledRectangle(im[i], 0, 0, X - 1, Y - 1, gd.gdImageColorExactAlpha(im[i], 255, 255, 255, 0));

                gd.gdImageSetInterpolationMethod(im[i], method);
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", im[i].interpolation_id == method ? 1: 0);

                gdImageStruct result = gd.gdImageScale(im[i], NX, NY);
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", result != null ? 1 : 0);
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", result != im[i] ? 1 : 0);
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", result != null && result.sx == NX && result.sy == NY ? 1 : 0);

                gd.gdImageDestroy(result);
                gd.gdImageDestroy(im[i]);
            }     // for
        }         // for


        Assert.AreEqual(0, GlobalMembersGdtest.gdNumFailures());
    } // main
Ejemplo n.º 15
0
    public void TestBug00002_1()
    {
        gdImageStruct im = gd.gdImageCreateTrueColor(100, 100);

        if (im == null)
        {
            GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "Cannot create image.\n");
            Assert.Fail();
        }

        gd.gdImageFill(im, 0, 0, 0xffffff);
        gd.gdImageFill(im, 0, 0, 0xffffff);

        gd.gdImagePng(im, TMP_FN);

        string path = string.Format("{0}/gdimagefill/bug00002_1_exp.png", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR);

        if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, (path), (im)) == 0)
        {
            gd.gdImageDestroy(im);
            Assert.Fail();
        }

        gd.gdImageDestroy(im);

        File.Delete(TMP_FN);
    }
Ejemplo n.º 16
0
    public void TestBug00081Cpp()
    {
        const string file_exp = "bug00081_exp.png";

        using (var image = new Image(5, 5, true))
        {
            if (!image.good())
            {
                Assert.Fail("can't create the src truecolor image\n");
            }

            image.FilledRectangle(0, 0, 49, 49, 0x00FFFFFF);
            image.ColorTransparent(0xFFFFFF);
            image.FilledRectangle(1, 1, 4, 4, 0xFF00FF);

            using (var image2 = new Image(20, 20, true))
            {
                if (!image2.good())
                {
                    Assert.Fail("can't create the dst truecolor image");
                }

                image2.Copy(image, 2, 2, 0, 0, image.SX(), image.SX());

                string path = string.Format("{0}/gdimagecopy/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, file_exp);
                if (GlobalMembersGdtest.TestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, image2) == 0)
                {
                    Assert.Fail("Reference image and destination differ\n");
                }
            }
        }
    }
Ejemplo n.º 17
0
    public void TestBug00032()
    {
        //gd.gdSetErrorMethod(GlobalMembersGdtest.gdSilence);

        gdImageStruct tile = gd.gdImageCreateTrueColor(10, 10);

        gd.gdImageFill(tile, 0, 0, 0xFFFFFF);
        gd.gdImageLine(tile, 0, 0, 9, 9, 0xff0000);
        gd.gdImageColorTransparent(tile, 0xFFFFFF);

        gdImageStruct im = gd.gdImageCreateTrueColor(50, 50);

        gd.gdImageFilledRectangle(im, 0, 0, 25, 25, 0x00FF00);

        gd.gdImageSetTile(im, tile);
        gd.gdImageFilledRectangle(im, 10, 10, 49, 49, GlobalMembersGdtest.DefineConstants.gdTiled);

        string path = Path.Combine(GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, "gdtiled", exp_img);

        if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, im) == 0)
        {
            gd.gdImageDestroy(im);
            gd.gdImageDestroy(tile);
            Assert.Fail();
        }

        gd.gdImageDestroy(im);
        gd.gdImageDestroy(tile);
    }
Ejemplo n.º 18
0
    public unsafe void TestJpeg_resolution()
    {
        int size = 0;

        gdImageStruct im = gd.gdImageCreate(100, 100);

        gd.gdImageSetResolution(im, 72, 300);
        int red = gd.gdImageColorAllocate(im, 0xFF, 0x00, 0x00);

        gd.gdImageFilledRectangle(im, 0, 0, 99, 99, red);
        IntPtr data = gd.gdImageJpegPtr(im, &size, 10);

        gd.gdImageDestroy(im);

        im = gd.gdImageCreateFromJpegPtr(size, data);
        gd.gdFree(data);
        if (GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", im.res_x == 72 ? 1 : 0) == 0 ||
            GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", im.res_y == 300 ? 1 : 0) == 0)
        {
            GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "failed image resolution X (%d != 72) or Y (%d != 300)\n", im.res_x, im.res_y);
            gd.gdImageDestroy(im);
            Assert.Fail();
        }
        gd.gdImageDestroy(im);
    }
Ejemplo n.º 19
0
    public void TestBug00111()
    {
        const string file_exp = "bug00111_exp.png";

        gdImageStruct im = gd.gdImageCreateTrueColor(10, 10);

        if (im == null)
        {
            Assert.Fail("can't get truecolor image");
        }

        gd.gdImageLine(im, 2, 2, 2, 2, 0xFFFFFF);
        gd.gdImageLine(im, 5, 5, 5, 5, 0xFFFFFF);

        gd.gdImageLine(im, 0, 0, 0, 0, 0xFFFFFF);

        string path = string.Format("{0}/gdimageline/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, file_exp);

        if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, (path), (im)) == 0)
        {
            Assert.Fail("Reference image and destination differ");
        }

        gd.gdImageDestroy(im);
    }
Ejemplo n.º 20
0
    public unsafe void TestPng_resolutionCpp()
    {
        int size;

        IntPtr data;

        using (var image = new Image(100, 100))
        {
            image.SetResolution(72, 300);
            int red = image.ColorAllocate(0xFF, 0x00, 0x00);
            image.FilledRectangle(0, 0, 99, 99, red);
            data = image.Png(&size);
        }

        using (var image = new Image())
        {
            image.CreateFromPng(size, data);
            gd.gdFree(data);

            if (GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", image.ResX() == 72 ? 1 : 0) == 0 ||
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", image.ResY() == 300 ? 1 : 0) == 0)
            {
                GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "failed image resolution X (%d != 72) or Y (%d != 300)\n", image.ResX(), image.ResY());
                Assert.Fail();
            }
        }
    }
    public void TestGdModesAndPalettesCpp()
    {
        for (var method = gdInterpolationMethod.GD_BELL; method <= gdInterpolationMethod.GD_TRIANGLE; method++) // GD_WEIGHTED4 is unsupported.
        {
            var images = new Image[2];

            // printf("Method = %d\n", method);
            images[0] = new Image(X, Y, true);
            images[1] = new Image(X, Y);

            for (int i = 0; i < 2; i++)
            {
                // printf("    %s\n", i == 0 ? "truecolor" : "palette");

                images[i].FilledRectangle(0, 0, X - 1, Y - 1, images[i].ColorExact(255, 255, 255, 0));

                images[i].SetInterpolationMethod(method);
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", images[i].GetPtr().interpolation_id == method ? 1 : 0);

                using (var result = new Image(gd.gdImageScale(images[i].GetPtr(), NX, NY)))
                {
                    GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", result.good() ? 1 : 0);
                    GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", result.GetPtr().__Instance != images[i].GetPtr().__Instance ? 1 : 0);
                    GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", result.good() && result.SX() == NX && result.SY() == NY ? 1 : 0);
                }
                images[i].Dispose();
            } // for
        }     // for


        Assert.AreEqual(0, GlobalMembersGdtest.gdNumFailures());
    } // main
    public unsafe void TestGd2_im2im()
    {
        int size   = 0;
        var result = new GlobalMembersGdtest.CuTestImageResult(0, 0);

        gdImageStruct src = gd.gdImageCreate(100, 100);

        if (src == null)
        {
            Assert.Fail("could not create src");
        }
        int r = gd.gdImageColorAllocate(src, 0xFF, 0, 0);
        int g = gd.gdImageColorAllocate(src, 0, 0xFF, 0);
        int b = gd.gdImageColorAllocate(src, 0, 0, 0xFF);

        gd.gdImageFilledRectangle(src, 0, 0, 99, 99, r);
        gd.gdImageRectangle(src, 20, 20, 79, 79, g);
        gd.gdImageEllipse(src, 70, 25, 30, 20, b);

        const int cs = (GlobalMembersGdtest.DefineConstants.GD2_CHUNKSIZE_MIN +
                        GlobalMembersGdtest.DefineConstants.GD2_CHUNKSIZE_MAX) / 2;

        gd.gdImageGd2(src, string.Format("gd2_im2im_{0}.gd2", "src"), cs, GlobalMembersGdtest.DefineConstants.GD2_FMT_COMPRESSED);
        IntPtr p = gd.gdImageGd2Ptr(src, cs, GlobalMembersGdtest.DefineConstants.GD2_FMT_COMPRESSED, &size);

        if (p == IntPtr.Zero)
        {
            gd.gdImageDestroy(src);
            Assert.Fail("p is null\n");
        }
        if (size <= 0)
        {
            gd.gdFree(p);
            gd.gdImageDestroy(src);
            Assert.Fail("size is non-positive");
        }

        gdImageStruct dst = gd.gdImageCreateFromGd2Ptr(size, p);

        if (dst == null)
        {
            gd.gdFree(p);
            gd.gdImageDestroy(src);
            Assert.Fail("could not create dst");
        }
        gd.gdImageGd2(dst, string.Format("gd2_im2im_{0}.gd2", "dst"), cs, GlobalMembersGdtest.DefineConstants.GD2_FMT_COMPRESSED);
        GlobalMembersGdtest.gdTestImageDiff(src, dst, null, result);
        if (result.pixels_changed > 0)
        {
            gd.gdImageDestroy(dst);
            gd.gdFree(p);
            gd.gdImageDestroy(src);
            Assert.Fail("pixels changed: {0:D}\n", result.pixels_changed);
        }
        gd.gdImageDestroy(dst);
        gd.gdFree(p);
        gd.gdImageDestroy(src);
    }
Ejemplo n.º 23
0
    public unsafe void TestGif_im2im()
    {
        int size   = 0;
        var result = new GlobalMembersGdtest.CuTestImageResult(0, 0);

        gdImageStruct src = gd.gdImageCreate(100, 100);

        if (src == null)
        {
            Assert.Fail("could not create src");
        }
        int r = gd.gdImageColorAllocate(src, 0xFF, 0, 0);
        int g = gd.gdImageColorAllocate(src, 0, 0xFF, 0);
        int b = gd.gdImageColorAllocate(src, 0, 0, 0xFF);

        gd.gdImageFilledRectangle(src, 0, 0, 99, 99, r);
        gd.gdImageRectangle(src, 20, 20, 79, 79, g);
        gd.gdImageEllipse(src, 70, 25, 30, 20, b);

        gd.gdImageGif(src, "gif_im2im_src.gif");
        IntPtr p = gd.gdImageGifPtr(src, &size);

        if (p == IntPtr.Zero)
        {
            gd.gdImageDestroy(src);
            Assert.Fail("p is null\n");
        }
        if (size <= 0)
        {
            gd.gdFree(p);
            gd.gdImageDestroy(src);
            Assert.Fail("size is non-positive");
        }

        gdImageStruct dst = gd.gdImageCreateFromGifPtr(size, p);

        if (dst == null)
        {
            gd.gdFree(p);
            gd.gdImageDestroy(src);
            Assert.Fail("could not create dst");
        }
        gd.gdImageGif(dst, "gif_im2im_dst.gif");
        GlobalMembersGdtest.gdTestImageDiff(src, dst, null, result);
        if (result.pixels_changed > 0)
        {
            gd.gdImageDestroy(dst);
            gd.gdFree(p);
            gd.gdImageDestroy(src);
            Assert.Fail("pixels changed: {0:D}\n", result.pixels_changed);
        }
        gd.gdImageDestroy(dst);
        gd.gdFree(p);
        gd.gdImageDestroy(src);
    }
Ejemplo n.º 24
0
    public void TestBug00006()
    {
        const int r       = 255;
        const int g       = 0;
        const int b       = 0;
        const int trans_c = (0 << 24) + (r << 16) + (g << 8) + b;
        int       error   = 0;

        gdImageStruct im = gd.gdImageCreateTrueColor(192, 36);

        if (im == null)
        {
            GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "Cannot create image\n");
            Assert.Fail();
        }

        gd.gdImageColorTransparent(im, trans_c);
        gd.gdImageFilledRectangle(im, 0, 0, 192, 36, trans_c);

        gd.gdImageGif(im, TMP_FN);

        gd.gdImageDestroy(im);
        im = gd.gdImageCreateFromGif(TMP_FN);

        if (im == null)
        {
            GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "Cannot create image from <%s>\n", TMP_FN);
            Assert.Fail();
        }

        int trans_c_f = ((im).transparent);

        if (GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", trans_c_f == 1 ? 1 : 0) != 0)
        {
            int r_f = im.trueColor != 0 ? ((trans_c_f & 0xFF0000) >> 16) : im.red[trans_c_f];
            int g_f = im.trueColor != 0 ? ((trans_c_f & 0x00FF00) >> 8) : im.green[trans_c_f];
            int b_f = im.trueColor != 0 ? (trans_c_f & 0x0000FF) : im.blue[trans_c_f];

            if (GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", r_f == r ? 1 : 0) == 0 ||
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", g_f == g ? 1 : 0) == 0 ||
                GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", b_f == b ? 1 : 0) == 0)
            {
                error = 1;
            }
        }
        else
        {
            error = 1;
        }

        /* Destroy it */
        gd.gdImageDestroy(im);
        File.Delete(TMP_FN);
        Assert.AreEqual(0, error);
    }
Ejemplo n.º 25
0
    public void TestBug00002_3()
    {
        int error = 0;

        /*	fputs("flag 0\n", stdout); */
        gdImageStruct im = gd.gdImageCreate(150, 150);


        gdImageStruct tile = gd.gdImageCreateTrueColor(36, 36);

        int tile_white = gd.gdImageColorAllocate(tile, 255, 255, 255);
        int tile_black = gd.gdImageColorAllocate(tile, 55, 0, 0);

        gd.gdImageColorAllocate(im, 255, 255, 255);      // allocate white for background color
        int im_black = gd.gdImageColorAllocate(im, 0, 0, 0);

        gd.gdImageFill(tile, 0, 0, tile_white);
        gd.gdImageColorTransparent(tile, tile_black);
        gd.gdImageColorTransparent(im, im_black);

        /* create the dots pattern */
        for (int x = 0; x < 36; x += 2)
        {
            for (int y = 0; y < 36; y += 2)
            {
                gd.gdImageSetPixel(tile, x, y, tile_black);
            }
        }

        gd.gdImageSetTile(im, tile);
        gd.gdImageRectangle(im, 9, 9, 139, 139, im_black);
        gd.gdImageLine(im, 9, 9, 139, 139, im_black);
        gd.gdImageFill(im, 11, 12, GlobalMembersGdtest.DefineConstants.gdTiled);


        /*	fputs("flag 1\n", stdout); */
        gd.gdImageFill(im, 0, 0, 0xffffff);
        /*	fputs("flag 2\n", stdout); */
        gd.gdImageFill(im, 0, 0, 0xffffff);
        /*	fputs("flag 3\n", stdout); */

        string path = string.Format("{0}/gdimagefill/bug00002_3_exp.png", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR);

        if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, (path), (im)) == 0)
        {
            error = 1;
        }

        /* Destroy it */
        gd.gdImageDestroy(im);
        if (error != 0)
        {
            Assert.Fail("Error: {0}", error);
        }
    }
Ejemplo n.º 26
0
 private static void CheckValue(int n, int expected)
 {
     do
     {
         if (GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__,
                                              "assert failed in <%s:%i>\n", ((n) == (expected)) ? 1 : 0) != 1)
         {
             Assert.Fail("{0:D} is expected, but {1:D}\n", expected, n);
         }
     } while (false);
 }
    } // save

    /* Test gd.gdImageScale() with bicubic interpolation on a simple
     * all-white image. */

    private static gdImageStruct mkwhite(int x, int y)
    {
        gdImageStruct im = gd.gdImageCreateTrueColor(x, y);

        gd.gdImageFilledRectangle(im, 0, 0, x - 1, y - 1, gd.gdImageColorExactAlpha(im, 255, 255, 255, 0));

        GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", (im != null) ? 1 : 0);

        gd.gdImageSetInterpolationMethod(im, gdInterpolationMethod.GD_BICUBIC);         // FP interp'n

        return(im);
    } // mkwhite
    } // mkwhite

    private static Image mkwhiteCpp(int x, int y)
    {
        var image = new Image(x, y, true);

        image.FilledRectangle(0, 0, x - 1, y - 1, image.ColorExact(255, 255, 255, 0));

        GlobalMembersGdtest.gdTestAssert(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "assert failed in <%s:%i>\n", image.good() ? 1 : 0);

        image.SetInterpolationMethod(gdInterpolationMethod.GD_BICUBIC); // FP interp'n

        return(image);
    } // mkwhite
Ejemplo n.º 29
0
    public static int gdTestAssert(string file, uint line, string message, int condition)
    {
        if (condition != 0)
        {
            return(1);
        }
        GlobalMembersGdtest.gdTestErrorMsg(file, line, "%s", message);

        ++failureCount;

        return(0);
    }
Ejemplo n.º 30
0
    public void TestBug00067()
    {
        const string file_im  = "gdimagerotate/remirh128.jpg";
        const string file_exp = "gdimagerotate/bug00067";
        int          error    = 0;

        string        path = string.Format("{0}/{1}", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, file_im);
        gdImageStruct im   = gd.gdImageCreateFromJpeg(path);

        if (im == null)
        {
            GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "loading %s failed.", path);
            Assert.Fail();
        }

        int color = gd.gdImageColorAllocate(im, 0, 0, 0);

        if (color < 0)
        {
            GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "allocation color from image failed.");
            gd.gdImageDestroy(im);
            Assert.Fail();
        }

        for (int angle = 0; angle <= 180; angle += 15)
        {
            gdImageStruct exp = gd.gdImageRotateInterpolated(im, angle, color);

            if (exp == null)
            {
                GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "rotating image failed for %03d.", angle);
                gd.gdImageDestroy(im);
                Assert.Fail();
            }

            path = string.Format("{0}/{1}_{2:D3}_exp.png", GlobalMembersGdtest.DefineConstants.GDTEST_TOP_DIR, file_exp, angle);

            if (GlobalMembersGdtest.gdTestImageCompareToFile(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, null, path, exp) == 0)
            {
                GlobalMembersGdtest.gdTestErrorMsg(GlobalMembersGdtest.__FILE__, GlobalMembersGdtest.__LINE__, "comparing rotated image to %s failed.", path);
                error += 1;
            }

            gd.gdImageDestroy(exp);
        }

        gd.gdImageDestroy(im);

        if (error != 0)
        {
            Assert.Fail("Error: {0}", error);
        }
    }