java實現圖片反色處理示例
更新時間:2021年11月17日 10:45:26 作者:洛陽泰山
這篇文章主要為大家詳細介紹了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 中 synchronized的用法詳解(四種用法)
Java語言的關鍵字,當它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多只有一個線程執(zhí)行該段代碼。本文給大家介紹java中 synchronized的用法,對本文感興趣的朋友一起看看吧2015-11-11
Java 線程池ExecutorService詳解及實例代碼
這篇文章主要介紹了Java 線程池ExecutorService詳解及實例代碼的相關資料,線程池減少在創(chuàng)建和銷毀線程上所花的時間以及系統(tǒng)資源的開銷.如果不使用線程池,有可能造成系統(tǒng)創(chuàng)建大量線程而導致消耗系統(tǒng)內存以及”過度切換“2016-11-11

