赞
踩
我们无需将图片(如bmp)的像素信息提取出来后进行左移右移操作,直接使用BufferedImage的构造方法来进行转换即可。步骤如下:
关键点:new BufferedImage(w, h, BufferedImage.TYPE_USHORT_565_RGB);
这句话最后一个参数表示你要生产的图片数据类型,比如我们要生成bmp565,就使用TYPE_USHORT_565_RGB,文档中还包含了其他很丰富的图片数据类型。
主要代码如下:
public static void image2RGB565Bmp(String filePath, String saveFileName) { try { BufferedImage sourceImg = ImageIO.read(new File(filePath)); int h = sourceImg.getHeight(), w = sourceImg.getWidth(); int[] pixel = new int[w * h]; PixelGrabber pixelGrabber = new PixelGrabber(sourceImg, 0, 0, w, h, pixel, 0, w); pixelGrabber.grabPixels(); MemoryImageSource m = new MemoryImageSource(w, h, pixel, 0, w); Image image = Toolkit.getDefaultToolkit().createImage(m); BufferedImage buff = new BufferedImage(w, h, BufferedImage.TYPE_USHORT_565_RGB); buff.createGraphics().drawImage(image, 0, 0 ,null); ImageIO.write(buff, "bmp", new File(saveFileName)); } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。