// Last updated 2008/11/25 08:31

// http://www.imagemagick.org/discourse-server/viewtopic.php?f=18&t=12118
/*
magick convert cyclops.gif -bordercolor white -border 1x1 -matte \
		-fill none -fuzz 20% -draw "matte 0,0 floodfill" \
		-shave 1x1 cyclops_flood_3.png
*/
#include <windows.h>
#include <wand/magick_wand.h>

void test_wand(void)
{
	MagickWand *mw = NULL;
	PixelWand *bg = NULL;
	PixelWand *fg = NULL;
	DrawingWand *dw = NULL;
	ChannelType channel;

	MagickWandGenesis();
	mw = NewMagickWand();
	// Uses Anthony's image from http://www.imagemagick.org/Usage/images/cyclops_sm.gif
	MagickReadImage(mw,"cyclops_sm.gif");
	
	// "background" wand for the Border and then for the floodfill
	bg = NewPixelWand();
	PixelSetColor(bg,"white");

	MagickBorderImage(mw,bg,1,1);

	// -matte is the same as -alpha on
	MagickSetImageAlphaChannel(mw,SetAlphaChannel);
	
	// "foreground" wand
	fg = NewPixelWand();
	PixelSetColor(fg,"none");
	
	// Set up the channels required for the floodfill
	// Must have "a" channel here too!
	channel = ParseChannelOption("rgba");

	// Floodfill the "background" colour with the "foreground" colour
	// starting at coordinate 0,0 using a fuzz of 20
	MagickFloodfillPaintImage(mw,channel,fg,20,bg,0,0,MagickFalse);

	MagickShaveImage(mw,1,1);

	MagickWriteImage(mw,"cyclops_sm_flood.png");	

	DestroyMagickWand(mw);
	DestroyPixelWand(fg);
	DestroyPixelWand(bg);
	
	MagickWandTerminus();
}