• 钢镚儿冲刺一周期第一天


    一、说在前面

      今天的目标是实现使用java完成对图片像素点的操作进而实现图片的褪色处理,作为之后梦想清单的原型;

    二、大体思路

      由于有一点PS的基础,所以明白褪色相应的算法原理,根据RGB的数量对颜色进行判断进而通过代码遍历图片的每个像素点并更形成相应的黑白色。并且Android和java的关系非常近,使用java写出来之后那迁移到Android会简单很多。

    三、代码

    import java.awt.image.BufferedImage;  
    import java.io.File;  
    import java.io.IOException;
    import java.net.URLDecoder;
    
    import javax.imageio.ImageIO;  
    public class Image   
    {  
        private static String basePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
        public void binaryImage() throws IOException  
        {  
            
            File file = new File("C:\Users\26218\Desktop\c.jpg");  
            BufferedImage image = ImageIO.read(file);  
            int width = image.getWidth();  
            int height = image.getHeight();   
            BufferedImage grayImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_BINARY);  
            for(int i= 0 ; i < width ; i++)  
            {  
                for(int j = 0 ; j < height; j++)  
                {  
                    int rgb = image.getRGB(i, j);  
                    grayImage.setRGB(i, j, rgb);  
                }  
            }     
            File newFile = new File("d.jpg");  
            ImageIO.write(grayImage, "jpg", newFile);  
        }  
        public void grayImage() throws IOException  
        {  
            File file = new File("c.jpg");  
            BufferedImage image = ImageIO.read(file);     
            int width = image.getWidth();  
            int height = image.getHeight();   
            BufferedImage grayImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);  
            for(int i= 0 ; i < width ; i++)  
            {  
                for(int j = 0 ; j < height; j++)  
                {  
                    int rgb = image.getRGB(i, j);  
                    grayImage.setRGB(i, j, rgb);  
                }  
            }  
            File newFile = new File("e.jpg");  
            ImageIO.write(grayImage, "jpg", newFile);  
        }  
        public static void main(String[] args) throws IOException   
        {  
            Image demo = new Image();  
            basePath=URLDecoder.decode(basePath,"utf-8");
            demo.binaryImage();  
            demo.grayImage();  
        }  
    }  
  • 相关阅读:
    使用 elementUI 的表单进行查询,表单中只有一个文本框时,回车会自动触发表单的提交事件,导致页面的刷新。
    Vue+elementUI 创建“回到顶部”组件
    elementUI 表格 table 的表头错乱问题
    阿拉伯数字转中文大写(整数)方法
    vue开发 回到顶部操作
    vue-cli 项目中使用 v-chart 及导出 chart 图片
    vue-router路由钩子
    vue随记
    vue中的watch
    Ajax 同步异步互相转换以及区别
  • 原文地址:https://www.cnblogs.com/suanai/p/12753569.html
Copyright © 2020-2023  润新知