软件编程
位置:首页>> 软件编程>> java编程>> java实现图片反色处理示例

java实现图片反色处理示例

作者:洛阳泰山  发布时间:2022-07-09 20:53:34 

标签:java,图片反色

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

效果对比

原图

java实现图片反色处理示例

反色处理

java实现图片反色处理示例

原图

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十六位制的蓝色

运行主方法即可。

来源:https://blog.csdn.net/weixin_40986713/article/details/121332852

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com