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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

洛阳泰山   2021-11-17 我要评论
想了解java实现图片反色处理示例的相关内容吗,洛阳泰山在本文为您仔细讲解java图片反色处理的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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十六位制的蓝色

运行主方法即可。

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们