图片反相算法,比较简单,就是使用255减去图片中的每个像素的RGB 值 ,即:
R_new = 255 - R;
G_new = 255 - G;
B_new = 255 - B;
原图如下:
效果图如下:
核心代码如下:
/**
* 对图片增加滤镜
*
* @param image 图片
* @return 增加滤镜之后的图片
*/
@Override
public BufferedImage pictureAddFilter(BufferedImage image) {
int width = image.getWidth();
int height = image.getHeight();
int minWidth = image.getMinX();
int minHeight = image.getMinY();
for (int i = minWidth; i < width; i++) {
for (int y = minHeight; y < height; y++) {
int rgb = image.getRGB(i, y);
Color color = new Color(rgb);
color = filterColor(color);
image.setRGB(i,y,color.getRGB());
}
}
return image;
}
/**
* 对像素color 进行处理
*
* @param color 原color
* @return 新color
*/
@Override
protected Color filterColor(Color color) {
return new Color(255 - color.getRed(),255 - color.getGreen(),255- color.getBlue());
}