標籤:格式 array nal create 簡單的 pat 處理 gpo logs
Java中進行映像I/O(即讀圖片和寫圖片,不涉及到複雜影像處理)一個類包含靜態方便定位方法 ImageReaders和 ImageWriters,並進行簡單的編碼和解碼。
@Test //擷取輸入輸出圖片格式 public void f1() { String readFormats[] = ImageIO.getReaderFormatNames(); String writeFormats[] = ImageIO.getWriterFormatNames(); System.out.println( Arrays.asList(readFormats)); System.out.println( Arrays.asList(writeFormats)); } @Test public void f2() { Iterator<ImageReader> iterator = ImageIO.getImageReadersByFormatName("png"); } /** * 對圖片裁剪,並把裁剪新圖片儲存 * @param srcPath 讀取源圖片路徑 * @param toPath 寫入圖片路徑 * @param x 剪下起始點x座標 * @param y 剪下起始點y座標 * @param width 剪下寬度 * @param height 剪下高度 * @param readImageFormat 讀取圖片格式 * @param writeImageFormat 寫入圖片格式 * @throws IOException */ public void cropImage(String srcPath,String toPath, int x,int y,int width,int height, String readImageFormat,String writeImageFormat) throws IOException{ FileInputStream fis = null ; ImageInputStream iis =null ; try{ //讀取圖片檔案 fis = new FileInputStream(srcPath); Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(readImageFormat); ImageReader reader = (ImageReader) it.next(); //擷取圖片流 iis = ImageIO.createImageInputStream(fis); reader.setInput(iis,true) ; ImageReadParam param = reader.getDefaultReadParam(); //定義一個矩形 Rectangle rect = new Rectangle(x, y, width, height); //提供一個 BufferedImage,將其用作解碼像素資料的目標。 param.setSourceRegion(rect); BufferedImage bi = reader.read(0,param); //儲存新圖片 ImageIO.write(bi, writeImageFormat, new File(toPath)); }finally{ if(fis!=null) fis.close(); if(iis!=null) iis.close(); } }
java圖片處理