压缩图片分辨率 ,根据 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. }




javaweb 压缩文件图片的更多相关文章

  1. 文件上传,服务端压缩文件方法,重点是png与gif图片的压缩,保证了透明度与动画

    /// <summary> /// 上传文件帮助类 /// </summary> public class ImageUploadHelper { #region SaveVi ...

  2. javaWeb导出POI创建的多个excel的压缩文件

    文件效果图: 接口代码: //测试 http://localhost:8080/admin/test/test/poizip @RequestMapping(value = "/poizip ...

  3. JavaWeb多文件上传及zip打包下载

    项目中经常会使用到文件上传及下载的功能.本篇文章总结场景在JavaWeb环境下,多文件上传及批量打包下载功能,包括前台及后台部分.  首先明确一点:  无法通过页面的无刷新ajax请求,直接发下载.上 ...

  4. iOS中使用ZipArchive压缩和解压缩文件-备

    为什么我需要解压缩文件 有许多原因能解释为什么我要在工程中使用压缩和解压缩功能,下面是几个常见的原因: 苹果App Store的50M下载限制 苹 果公司出于流量的考虑,规定在非WIFI环境下,限制用 ...

  5. 压缩文件 compress files 以7z 格式及解压 或者别的格式

    主要是为了能大量的减少文件使用空间,为了能节约带宽. 那么就用了7z的压缩方式. 这里,使用了7z的压缩方式,硬生生的将一个10k多的图片压缩成了3k左右的包.图片是不好压缩的,这个压缩比比zip g ...

  6. java压缩文件解压:调用WinRAR5命令强于自己写代码实现

    最近,手上维护着一个几年前的系统,技术是用的JSP+Strust2,系统提供了rar和zip两种压缩格式的解压功能,后台是用java实现的 1.解压rar格式,采用的是java-unrar-0.3.j ...

  7. java多图片上传--前端实现预览--图片压缩 、图片缩放,区域裁剪,水印,旋转,保持比例。

    java多图片上传--前端实现预览 前端代码: https://pan.baidu.com/s/1cqKbmjBSXOhFX4HR1XGkyQ 解压后: java后台: <!--文件上传--&g ...

  8. 一张有料的图片!!!附文件-图片合成器C语言实现算法

    凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.打开F盘,先找两个文件,一个是压缩文件(2.rar),另一个是一张图片(1.jpg),将其放到F盘目录下, ...

  9. 自制 COCO api 直接读取类 COCO 的标注数据的压缩文件

    第6章 COCO API 的使用 COCO 数据库是由微软发布的一个大型图像数据集,该数据集专为对象检测.分割.人体关键点检测.语义分割和字幕生成而设计.如果你要了解 COCO 数据库的一些细节,你可 ...

随机推荐

  1. iOS:关于UIView切角的两种实现方式

    转载自:http://www.jianshu.com/p/451b7fa94e2a 第一种: 我想你一见到代码,就瞬间有吐的冲动,最常用的一种方式... UIButton *button = [[UI ...

  2. 【转载】Java NIO学习 & NIO BIO AIO 比较

    可以参考这个页面: http://www.iteye.com/magazines/132-Java-NIO (下面这个页面也有) http://ifeve.com/overview/ 另,在这篇文章里 ...

  3. 二、ELKStack集群架构设计

    一.ELKStack介绍与入门实践 二.Elasticsearch 集群架构图 服务器配置:Centos6.6 x86_64 CPU:1核心 MEM:2G (做实验,配置比较低一些) 注:这里配置el ...

  4. Less的安装与配置

    Less的安装与配置 Less与Sass 先说一段题外话,很多初学者在选择CSS 预处理语言不免会感到犹豫,作为CSS 的两大预处理语言Less与Sass,各自都有着很广泛的使用群体,我究竟该选哪个好 ...

  5. 理解Vue的状态管理模式Vuex

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 状态管理模式.集中式存储管理,一听就很高大 ...

  6. Core Data 删除某条指定记录的数据

    一:操作流程 先查询得到某条要删除的数据 然后删除某记录 二:演示代码 //删除 - (void)deleteThePersonData { NSFetchRequest *fetchRequest ...

  7. Ubuntu 11.04 安装后要做的20件事情

    转自:http://www.cnbeta.com/articles/141137.htm #1 不喜欢Unity? 切换到Ubuntu gnome 经典桌面 注销unity桌面环境,然后选择登录环境为 ...

  8. STL源码剖析(适配器)

    STL中由三类适配器,它们分别是: 1.容器适配器(stack.queue) 2.迭代器适配器(insert_iterator.reverse_iterator.iostream_iterator) ...

  9. 基于shiro+jwt的真正rest url权限管理,前后端分离

    代码地址如下:http://www.demodashi.com/demo/13277.html bootshiro & usthe bootshiro是基于springboot+shiro+j ...

  10. Linux-profile、bashrc、bash_profile之间的区别和联系

    为使Bash更好地为我们服务,我们需定制bash shell环境. ~/.bash_profile.~/.bashrc.和~/.bash_logout 上面这三个文件是bash shell的用户环境配 ...