java实现图片反色处理示例

本文实例为大家分享了java实现图片反色处理的具体代码,供大家参考,具体内容如下

效果对比

原图

反色处理

原图

反色处理

核心代码实现

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;

import java.io.*;

public class ImageColor {

/**

* @Description: 反色

* @param imgPath 图片路径

* @param fileUrl 输出图片路径

* @throws

*/

public static void inverse(String imgPath, String fileUrl){

try {

FileInputStream fileInputStream = new FileInputStream(imgPath);

BufferedImage image = ImageIO.read(fileInputStream);

//生成字符图片

int w = image.getWidth();

int h = image.getHeight();

BufferedImage imageBuffer = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);;

// 绘制字符

for (int y = 0; y < h; y++) {

for (int x = 0; x< w; x++) {

int rgb = image.getRGB(x, y);

int R = (rgb & 0xff0000) >> 16;

int G = (rgb & 0x00ff00) >> 8;

int B = rgb & 0x0000ff;

int newPixel=colorToRGB(255-R,255-G,255-B);

imageBuffer.setRGB(x,y,newPixel);

}

}

ImageIO.write(imageBuffer, "png", new File(fileUrl)); //输出图片

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* @Description: 颜色转rgb值

* @throws

*/

public static int colorToRGB(int red,int green,int blue){

int newPixel=0;

newPixel=newPixel << 8;

newPixel+=red;

newPixel=newPixel << 8;

newPixel+=green;

newPixel=newPixel << 8;

newPixel+=blue;

return newPixel;

}

public static void main(String[] args) throws IOException {

inverse("C:\\Users\\liuya\\Desktop\\laoying.png","C:\\Users\\liuya\\Desktop\\logo_0.png");

}

}

补充知识

三基色是光的红,绿,蓝

0xff0000  为RGB十六位制的红色

0x00ff00  为RGB十六位制的绿色

0x0000ff  为RGB十六位制的蓝色

运行主方法即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 java实现图片反色处理示例 的全部内容, 来源链接: utcz.com/p/250788.html

回到顶部