miércoles, 18 de febrero de 2009

Alpha Blending

import ij.IJ;
import ij.ImagePlus;
import ij.WindowManager;
import ij.gui. GenericDialog;
import ij.plugin.filter.PlugInfilter;
import ij.Process.*;

public class Aplha_Blending implements PlugInFilter
{
static double alpha = 0.5;
ImagePlus fgIm= null;

public int setup(String arg, ImagePlus imp)
{
return DOES_8G;
}

public void run(ImageProcessor bgIp)
{
if (rumDialog())
{
ImageProcessor fgIP
= fgIm.getProcessor().convertToByte (false);
fgIp= fgIP. duplicate();
fgIp.multiply(1-alpha);
bgIp.multiply(alpha);
bgIp.copyBits(fgIp, 0, 0, Blitter. ADD);
}
}


Boolean runDialog()
{
int [] windowList = WindowManager.getIDList ();
if (windowList == null)
{
IJ.noImage();
return false;
}

String []windowTitles = new String [windowList.length];
For (int i=0; i < windowList.length; i++)
{
ImagePlus im = WindowManager.getImage(windowList[i]);
if(im == null)
windowTitles [i] = “untitled”;
else
windowTitles [i] = im.getShortTitle();
}

GenericDialog gd = new GenericDialog(“Alpha Blending”);
gd.addChoice(“Foreground image :”,
windowTitles, windowTitles [0]);
gd. addNumericField(“Alpa value [0..1]:”, alpha,2);
gd.showDialog ();
if (gd.wasCanceled())
return false;
else
{
Int fgIdx = gd.getNexChoiceIndex();
fgIm = WindowManager.getImage ( windowList[fgIdx]);
alpha = gd.getNextNumber ();
return true;
}
}
}

No hay comentarios: