import ij.IJ;
import ij.ImagePlus;
import ij.WindowManager;
import ij.gui.GenericDialog;
import ij.plugin.filter.PlugInFilter;
import ij.process.*;
public class Alpha_Blending implements PlugInFilter {
static double alpha = 0.5;
ImagePlus fqIm=null;
public int setup(String arg, ImagePlus imp){
return DOES_8G;
}
public void run(ImageProcessor bgIp) {
if (runDialog()){
ImageProcessor fgIp=fgIm.getProcessor().convertToByte(false);
fqIp=fgIp.duplicate();
fgIp.multiply(1-alpha);
bgIp.multiply(alpha);
bgIp.CopyBits(fqIp,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 = 0; i < windowlist.length; i++){
ImagePlus im = WindowManager.getImage(windowsList[i]);
if (im == null)
windowTitles[i] = "untitled";
else
windowsTitles[i]= im.getShortTitle();
}
GenericDialog gd = new GenericDialog("Alpha Bleding");
gd.addChoice("Foreground image:",
windowTitles, windowsTitles[0]);
gd.addNumericField("Alpha value [0..1]:", alpha, 2);
gd.showDialog())
return false;
elsae {
int fgIdx=gd.getNextChoiceIndex();
fglm=WindowManager.getImage(windowList[fgIdx]);
alpha=gd.getNextNumber();
return true;
}
}
}//end of class Alpha_Blending
Colaboradores
miércoles, 25 de febrero de 2009
Suscribirse a:
Enviar comentarios (Atom)

1 comentario:
Comentado por: DANIEL DAVILA C.
El codigo nos ayuda a poder superponer imagenes indicando cual de las dos va primero asi se da un background de cualquier imagen.
Publicar un comentario