首页 > 代码库 > 图像的读取、缩小、保存
图像的读取、缩小、保存
Image src = http://www.mamicode.com/javax.imageio.ImageIO.read(new File(".\\pictures\\00.jpg")) BufferedImage bufferedImage0 = new BufferedImage(w2,h2, BufferedImage.TYPE_INT_RGB); bufferedImage0.getGraphics().drawImage( src.getScaledInstance(w2,h2, Image.SCALE_SMOOTH), 0, 0, null); //生成缩略图 上面的方法是将图片src平滑缩小到bufferimage里去 ImageIO.write(bufferedImage0, "jpg", new File(".\\result\\0.jpg"));
w2,h2是创建bufferImage的大小,与原图不一样,因此可以缩小放大图片。且必须引入相关的包import java.awt.image.BufferedImage;import java.awt.Image; imageBuufer 是图片在内存里,可以直接setRGB 和getRGB像素。
java中的一些存储是3byte,且最高位是符号位,因此r、g、b合成像素时候需要注意,如下:
public BufferedImage grayimage( BufferedImage bufferedImage) { BufferedImage bufferedImage2 = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR); for (int x = 0; x < w; x++) { for (int y = 0; y < h; y++) { int argb = bufferedImage.getRGB(x, y); int r = (argb >> 16) & 0xFF; int g = (argb >> 8) & 0xFF; int b = (argb >> 0) & 0xFF; int grayPixel = (int) (r + g + b) / 3; int rgb = (grayPixel * 256 + grayPixel) * 256 + grayPixel; if (rgb > 8388608) //8388608 = 256*256*256/2 是24位表示的最大数,最高位是符号位,再大就是负数表示了 { rgb = rgb - 16777216; } bufferedImage2.setRGB(x, y, rgb); } } return bufferedImage2; }
图像的读取、缩小、保存
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。