// Last updated 2008/12/11 09:49 // Replace the white background area of logo: with transparent and don't forget // that for this the channel must be "rgba" and the output image must be PNG // or other format which supports transparency #include <windows.h> #include <stdio.h> #include <string.h> #include <wand/magick_wand.h> void test_wand(LPTSTR lpCmdLine) { MagickWand *m_wand = NULL; PixelWand *fc_wand = NULL; PixelWand *bc_wand = NULL; ChannelType channel; MagickWandGenesis(); m_wand = NewMagickWand(); // PixelWands for the fill and bordercolour fc_wand = NewPixelWand(); bc_wand = NewPixelWand(); MagickReadImage(m_wand,"logo:"); PixelSetColor(fc_wand,"none"); PixelSetColor(bc_wand,"white"); // Convert "rgba" to the enumerated ChannelType required by the floodfill function channel = ParseChannelOption("rgba"); // The bordercolor=bc_wand (with fuzz of 20 applied) is replaced // by the fill colour=fc_wand starting at the given coordinate - in this case 0,0. // Normally the last argument is MagickFalse so that the colours are matched but // if it is MagickTrue then it floodfills any pixel that does *not* match // the target color MagickFloodfillPaintImage(m_wand,channel,fc_wand,20,bc_wand,0,0,MagickFalse); MagickWriteImage(m_wand,"logo_paintflood.png"); /* and we're done so destroy the magick wand etc.*/ fc_wand = DestroyPixelWand(fc_wand); bc_wand = DestroyPixelWand(bc_wand); m_wand = DestroyMagickWand(m_wand); MagickWandTerminus(); }