首页 > 开发 > Java > 正文

java实现图片裁切的工具类实例

2024-07-13 09:55:56
字体:
来源:转载
供稿:网友

这篇文章主要介绍了java实现图片裁切的工具类实例,涉及Java针对图片的读取、修改等相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了java实现图片裁切的工具类。分享给大家供大家参考,具体如下:

 

 
  1. package com.yanek.util; 
  2. import java.awt.Rectangle; 
  3. import java.awt.image.BufferedImage; 
  4. import java.io.File; 
  5. import java.io.FileInputStream; 
  6. import java.io.IOException; 
  7. import java.util.Iterator; 
  8. import javax.imageio.ImageIO; 
  9. import javax.imageio.ImageReadParam; 
  10. import javax.imageio.ImageReader; 
  11. import javax.imageio.stream.ImageInputStream; 
  12. public class ImgCutUtil { 
  13. /** 
  14. * @param args 
  15. */ 
  16. public static void main(String[] args) { 
  17. ImgCutUtil.cut(30, 50, 300, 400, "d:/1.jpg""d:/100.jpg"); 
  18. /** 
  19. * 图片裁切 
  20. * @param x1 选择区域左上角的x坐标 
  21. * @param y1 选择区域左上角的y坐标 
  22. * @param width 选择区域的宽度 
  23. * @param height 选择区域的高度 
  24. * @param sourcePath 源图片路径 
  25. * @param descpath 裁切后图片的保存路径 
  26. */ 
  27. public static void cut(int x1, int y1, int width, int height, 
  28. String sourcePath, String descpath) { 
  29. FileInputStream is = null
  30. ImageInputStream iis = null
  31. try { 
  32. is = new FileInputStream(sourcePath); 
  33. String fileSuffix = sourcePath.substring(sourcePath 
  34. .lastIndexOf(".") + 1); 
  35. Iterator<ImageReader> it = ImageIO 
  36. .getImageReadersByFormatName(fileSuffix); 
  37. ImageReader reader = it.next(); 
  38. iis = ImageIO.createImageInputStream(is); 
  39. reader.setInput(iis, true); 
  40. ImageReadParam param = reader.getDefaultReadParam(); 
  41. Rectangle rect = new Rectangle(x1, y1, width, height); 
  42. param.setSourceRegion(rect); 
  43. BufferedImage bi = reader.read(0, param); 
  44. ImageIO.write(bi, fileSuffix, new File(descpath)); 
  45. catch (Exception ex) { 
  46. ex.printStackTrace(); 
  47. finally { 
  48. if (is != null) { 
  49. try { 
  50. is.close(); 
  51. catch (IOException e) { 
  52. e.printStackTrace(); 
  53. is = null
  54. if (iis != null) { 
  55. try { 
  56. iis.close(); 
  57. catch (IOException e) { 
  58. e.printStackTrace(); 
  59. iis = null

希望本文所述对大家Java程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表