zoukankan      html  css  js  c++  java
  • javaweb 压缩文件图片


    压缩图片分辨率 ,根据 url  和 根据 file


    1. /**
    2. * <p>Title: thumbnailImage</p>
    3. * <p>Description: 根据图片路径生成缩略图 </p>
    4. * @param imagePath 原图片路径
    5. * @param w 缩略图宽
    6. * @param h 缩略图高
    7. * @param prevfix 生成缩略图的前缀
    8. * @param force 是否强制按照宽高生成缩略图(如果为false,则生成最佳比例缩略图)
    9. */
    10. public static File thumbnailImage(File imgFile, String format,int w, int h, boolean force){
    11. File file = null;
    12. try {
    13. // ImageIO 支持的图片类型 : [BMP, bmp, jpg, JPG, wbmp, jpeg, png, PNG, JPEG, WBMP, GIF, gif]
    14. // 获取图片后缀
    15. Image img = ImageIO.read(imgFile);
    16. BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    17. Graphics g = bi.getGraphics();
    18. g.drawImage(img, 0, 0, w, h, Color.LIGHT_GRAY, null);
    19. g.dispose();
    20. ByteArrayOutputStream os = new ByteArrayOutputStream();
    21. ImageIO.write(bi,format,os);
    22. byte [] bytes = os.toByteArray();
    23. BufferedOutputStream bos = null;
    24. FileOutputStream fos = null;
    25. file = new File("temp");
    26. fos = new FileOutputStream(file);
    27. bos = new BufferedOutputStream(fos);
    28. bos.write(bytes);
    29. bos.close();
    30. fos.close();
    31. os.close();
    32. } catch (IOException e) {
    33. }
    34. return file;
    35. }
    36. public static InputStream thumbnailImageByUrl(String url,String format,int w, int h, boolean force){
    37. try {
    38. // ImageIO 支持的图片类型 : [BMP, bmp, jpg, JPG, wbmp, jpeg, png, PNG, JPEG, WBMP, GIF, gif]
    39. // 获取图片后缀
    40. Image img = ImageIO.read(new URL(url));
    41. BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    42. Graphics g = bi.getGraphics();
    43. g.drawImage(img, 0, 0, w, h, Color.LIGHT_GRAY, null);
    44. g.dispose();
    45. ByteArrayOutputStream os = new ByteArrayOutputStream();
    46. ImageIO.write(bi, format, os);
    47. InputStream input = new ByteArrayInputStream(os.toByteArray());
    48. os.close();
    49. return input;
    50. } catch (IOException e) {
    51. e.printStackTrace();
    52. }
    53. return null;
    54. }



  • 相关阅读:
    2、MySQL语法规范 与 注释
    5、手写代码实现MyBatis的查询功能
    1、MySQL常见的操作命令
    操作系统(五)——文件
    操作系统(四)——内存
    操作系统(三)——信号量、死锁
    操作系统(二)——进程与线程
    操作系统(一)——概述和进程与线程基础
    多线程与并发(四)——线程池、原子性
    开课博客
  • 原文地址:https://www.cnblogs.com/signheart/p/fdbae1011ed7393487921775180ee7e4.html
Copyright © 2011-2022 走看看