java实现图片反色处理代码示例

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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实现图片反色处理代码示例的主要内容,如果未能解决你的问题,请参考以下文章

用opencv如何将一个二值化图像反色

LockSupport.java 中的 FIFO 互斥代码片段

[js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)

Intel Realsense D435 C/C++调用code examples(附代码)(坑坑坑坑坑!!!)(opencv显示图片反色解决)

Intel Realsense D435 C/C++调用code examples(附代码)(坑坑坑坑坑!!!)(opencv显示图片反色解决)

OpenCV实现彩色图片的补色与反色