#define PixelFormat24bppRGB 0x00021808 #define UnitPixel 2 #define ARGB_WHITE 0xffffffff cImagePng = "image.png" cImageBmp = FORCEEXT(cImagePng,"bmp") SET CLASSLIB TO (HOME()+"ffc\_gdiplus") ADDITIVE DeclGdip() ** Load our PNG and save it as a BMP oImg = CREATEOBJECT("GpImage") oImg.CreateFromFile(cImagePng) nWidth = oImg.ImageWidth nHeight = oImg.ImageHeight ** Create a bitmap the same size oBmp = CREATEOBJECT("GpBitmap") oBmp.Create(nWidth, nHeight, PixelFormat24bppRGB) ** Load it into a graphics object oGfx = CREATEOBJECT("GpGraphics") oGfx.CreateFromImage(oBmp) oGfx.Clear(ARGB_WHITE) ** Create an GpImageAttribute to translate the colors hImgAttrib = 0 GdipCreateImageAttributes(@hImgAttrib) ** Convert all knock all RGB values down by 1 cMatrix = ; BINTOC(1,"F")+BINTOC(0,"F")+BINTOC(0,"F")+BINTOC(0,"F")+BINTOC(0,"F")+; BINTOC(0,"F")+BINTOC(1,"F")+BINTOC(0,"F")+BINTOC(0,"F")+BINTOC(0,"F")+; BINTOC(0,"F")+BINTOC(0,"F")+BINTOC(1,"F")+BINTOC(0,"F")+BINTOC(0,"F")+; BINTOC(0,"F")+BINTOC(0,"F")+BINTOC(0,"F")+BINTOC(1,"F")+BINTOC(0,"F")+; BINTOC(-.004,"F")+BINTOC(-.004,"F")+BINTOC(-.004,"F")+BINTOC(0,"F")+BINTOC(1,"F") GdipSetImageAttributesColorMatrix(hImgAttrib,1,1,cMatrix,0,0) ** Draw the PNG to our mask, converting all RGB values to black GdipDrawImageRectRect(oGfx.GetHandle(),oImg.GetHandle(),; 0, 0, nWidth, nHeight, ; 0, 0, nWidth, nHeight, ; UnitPixel, hImgAttrib, 0, 0) ** Save the MSK file oBmp.SaveToFile(cImageBmp,"image/bmp") GdipDisposeImageAttributes(hImgAttrib) oGfx = NULL oBmp = NULL oImg = NULL *********************************************** FUNCTION DeclGDIP() DECLARE Long GdipDrawImageRectRect IN GDIPLUS ; Long graphics, Long image, ; Single dstx, Single dsty, ; Single dstwidth, Single dstheight, ; Single srcx, Single srcy, ; Single srcwidth, Single srcheight, ; Long srcUnit, Long imageAttributes, ; Long callback, Long callbackData DECLARE Long GdipCreateImageAttributes IN GDIPLUS ; Long @imageattr DECLARE Long GdipDisposeImageAttributes IN GDIPLUS ; Long imageattr DECLARE Long GdipSetImageAttributesColorMatrix IN GDIPLUS ; Long imageattr, Long type, ; Long enableFlag, String colorMatrix, ; Long grayMatrix, ; Long flags ENDFUNC