簡單的java映像裁減

來源:互聯網
上載者:User

/**<br /> * 對圖片裁剪,並把裁剪完蛋新圖片儲存 。<br /> *<br /> * @param srcpath: 被裁減的圖片完整路徑<br /> * @param tarpath: 已裁減的新圖片儲存完整的路徑<br /> * @param x: 裁減矩形地區左上頂點水平位移<br /> * @param y: 裁減矩形地區左上頂點垂直位移<br /> * @param width: 裁減矩形地區的寬度<br /> * @param height: 裁減矩形地區的高度<br /> */<br />public static void cut(String srcpath, String tarpath, int x, int y, int width, int height) {<br />try {<br />// 讀取圖片檔案<br />FileInputStream is = new FileInputStream(srcpath);</p><p>// 擷取圖片流<br />ImageInputStream iis = ImageIO.createImageInputStream(is);</p><p>// 轉化成輸出資料流<br />BufferedImage outputImage = getSubimage(ImageIO.read(iis), x, y, width, height);</p><p>// 儲存新圖片<br />if (null != outputImage) {<br />ImageIO.write(outputImage, "jpg", new File(tarpath));<br />}<br />} catch (IOException e) {<br />e.printStackTrace();<br />}<br />}</p><p>public static BufferedImage getSubimage(BufferedImage inputImage, int x, int y, int width, int height) {<br />return getSubimage(inputImage, new Rectangle(x, y, width, height));<br />}</p><p>public static BufferedImage getSubimage(BufferedImage inputImage, Rectangle rect) {<br />if (rect.x < 1 || rect.y < 1 || rect.x > inputImage.getWidth() || rect.y > inputImage.getHeight()) {<br />return null;<br />}<br />int x = Math.min(inputImage.getWidth(), rect.x);<br />int y = Math.min(inputImage.getHeight(), rect.y);<br />int width = Math.min(inputImage.getWidth() - x, rect.width);<br />int height = Math.min(inputImage.getHeight() - y, rect.height);<br />return inputImage.getSubimage(x, y, width, height);<br />}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.