/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package webcamstudio.sources.effects;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
/**
*
* @author pballeux
*/
public class Radar extends Effect {
private int lastColumn = 0;
@Override
public void applyEffect(BufferedImage img) {
int w = img.getWidth();
int h = img.getHeight();
int frame = img.getWidth()/2;
BufferedImage original = cloneImage(img);
int[] pixels = original.getRGB(0, 0, w, h, null, 0, w);
int[] pixelsOut = new int[pixels.length];
for (int i = 0;i<pixelsOut.length;i++){
pixelsOut[i] = 0xFF000000;
}
for (int i = 0; i < frame && (i + lastColumn) < w; i+=2) {
int opacity = i * 255 / frame;
for (int y = 0; y < h; y++) {
if ((i+lastColumn) >= 0) {
int green = (0x0000FF00 & pixels[y * w + i + lastColumn]) >> 8;
green = (green / 100) * 100;
if (i >= (frame-2)){
pixelsOut[y * w + i + lastColumn] = 0xFF00FF00;
} else if (green > 0) {
green = green *opacity / 255;
pixelsOut[y * w + i + lastColumn] = (green << 8) + 0xFF000000;
}
}
}
}
img.setRGB(0, 0, w, h, pixelsOut, 0, w);
lastColumn += 2;
if (lastColumn > w) {
lastColumn = 0 - frame;
}
}
@Override
public JPanel getControl() {
return null;
}
@Override
public boolean needApply(){
return needApply=true;
}
@Override
public void resetFX() {
// nothing here.
}
}