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。