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

運行主方法即可。

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: