来源:自学PHP网 时间:2020-09-27 14:14 作者:小飞侠 阅读:次
[导读] Java swing 图像处理多种效果实现教程...
今天带来Java swing 图像处理多种效果实现教程教程详解
项目记录: 1.图像原理 通常图像都是2D,对一副图像,可以看做其宽w*高h的一个二维数组, 即 图像=int[w][h],在w和h位置的每一个 int 值,就是这个点的像素值。 图像处理的本质是:对代表图像二维数组中的值进行重新计算。 2.思路: 将一张图片转化成一个int型m二维数组 对于每一个像素点大小和颜色进行计算达到图像处理的效果。 在画笔中设置好颜色,填充形状然后将新的图片画出。 3.实现效果 获取像素点方法,首先利用文件imageIO读取图片,然后根据图片长宽进行遍历得到每个像素点的颜色,最后return一个二维数组为处理做准备。 /** * 根据图片路径,获取该该图片的每个像素点并保存到对应的二维数组中 * @param path 图片路径 * @return 保存像素点的二维数组 */ public int[][] getImgPixel(String path){ File file = new File(path); BufferedImage buffImg = null; //缓冲图片 try { buffImg = ImageIO.read(file); } catch (IOException e) { e.printStackTrace(); } int w = buffImg.getWidth(); int h = buffImg.getHeight(); //定义二维数组,保存像素点 int[][] pixelArray = new int[w][h]; //读取每个位置的像素点 for(int i=0;i<w;i++){ for(int j=0;j<h;j++){ int pixel = buffImg.getRGB(i, j); //获取每个位置像素值 pixelArray[i][j] = pixel; } } return pixelArray; } 原图 根据之前得到的二维数组进行遍历,然后使用Color对象的get方法得到图片颜色,最后再使用画笔画出图像。 //原图 public void drawImg(String path, Graphics gr){ //得到图片路径 int[][] img = getImgPixel(path); for(int i=0;i<img.length;i++){ for(int j=0;j<img[i].length;j++){ int pixel = img[i][j]; //原图颜色不变 Color c = new Color(pixel); gr.setColor(c); //使用rectangle填充每一个点 gr.fillRect(i, j, 1,1); } } } 详解Java线程同步器CountDownLatch 最新评论添加评论更多文章推荐
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习 京ICP备14009008号-1@版权所有www.zixuephp.com 网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com
添加评论 |