/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Catalano.Imaging.Filters.Artistic;

import Catalano.Imaging.FastBitmap;
import Catalano.Imaging.Filters.HSLFiltering;
import Catalano.Imaging.IApplyInPlace;

/**
 *
 * @author Diego
 */
public class ChromaKey implements IApplyInPlace{
    
    private FastBitmap background;
    private HSLFiltering filter;
    
    public void setBackgroundImage(FastBitmap image){
        this.background = image;
    }

    public ChromaKey(HSLFiltering filter, FastBitmap background) {
        this.filter = filter;
        this.background = background;
    }

    @Override
    public void applyInPlace(FastBitmap fastBitmap) {
        
        filter.setFillOutsideRange(false);
        filter.applyInPlace(fastBitmap);
        
        int size = fastBitmap.getSize();
        for (int i = 0; i < size; i++) 
            if(fastBitmap.getRed(i) == 0 && fastBitmap.getGreen(i) == 0 && fastBitmap.getBlue(i) == 0)
                fastBitmap.setRGB(i, background.getRGB(i));
    }
}
 

Ads help maintain this website.