- 浏览: 3424459 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://my.oschina.net/backtract/blog/403828
支持将Image的宽度、高度缩放到指定width、height,并保存在指定目录
通过目标对象的大小和标准(指定)大小计算出图片缩小的比例
可以设置图片缩放质量,并且可以根据指定的宽高缩放图片
支持将Image的宽度、高度缩放到指定width、height,并保存在指定目录
通过目标对象的大小和标准(指定)大小计算出图片缩小的比例
可以设置图片缩放质量,并且可以根据指定的宽高缩放图片
package com.hoo.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.ImageFormatException; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * <b>function:</b> 缩放图片工具类,创建缩略图、伸缩图片比例 * @author hoojo * @createDate 2012-2-3 上午10:08:47 * @file ScaleImageUtils.java * @package com.hoo.util * @blog http://blog.csdn.net/IBM_hoojo * http://hoojo.cnblogs.com * @email hoojo_@126.com * @version 1.0 */ public abstract class ScaleImageUtils { private static final float DEFAULT_SCALE_QUALITY = 1f; private static final String DEFAULT_IMAGE_FORMAT = ".jpg"; // 图像文件的格式 private static final String DEFAULT_FILE_PATH = "C:/temp-"; /** * <b>function:</b> 设置图片压缩质量枚举类; * Some guidelines: 0.75 high quality、0.5 medium quality、0.25 low quality * @author hoojo * @createDate 2012-2-7 上午11:31:45 * @file ScaleImageUtils.java * @package com.hoo.util * @project JQueryMobile * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public enum ImageQuality { max(1.0f), high(0.75f), medium(0.5f), low(0.25f); private Float quality; public Float getQuality() { return this.quality; } ImageQuality(Float quality) { this.quality = quality; } } private static Image image; /** * <b>function:</b> 通过目标对象的大小和标准(指定)大小计算出图片缩小的比例 * @author hoojo * @createDate 2012-2-6 下午04:41:48 * @param targetWidth 目标的宽度 * @param targetHeight 目标的高度 * @param standardWidth 标准(指定)宽度 * @param standardHeight 标准(指定)高度 * @return 最小的合适比例 */ public static double getScaling(double targetWidth, double targetHeight, double standardWidth, double standardHeight) { double widthScaling = 0d; double heightScaling = 0d; if (targetWidth > standardWidth) { widthScaling = standardWidth / (targetWidth * 1.00d); } else { widthScaling = 1d; } if (targetHeight > standardHeight) { heightScaling = standardHeight / (targetHeight * 1.00d); } else { heightScaling = 1d; } return Math.min(widthScaling, heightScaling); } /** * <b>function:</b> 将Image的宽度、高度缩放到指定width、height,并保存在savePath目录 * @author hoojo * @createDate 2012-2-6 下午04:54:35 * @param width 缩放的宽度 * @param height 缩放的高度 * @param savePath 保存目录 * @param targetImage 即将缩放的目标图片 * @return 图片保存路径、名称 * @throws ImageFormatException * @throws IOException */ public static String resize(int width, int height, String savePath, Image targetImage) throws ImageFormatException, IOException { width = Math.max(width, 1); height = Math.max(height, 1); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); image.getGraphics().drawImage(targetImage, 0, 0, width, height, null); if (savePath == null || "".equals(savePath)) { savePath = DEFAULT_FILE_PATH + System.currentTimeMillis() + DEFAULT_IMAGE_FORMAT; } FileOutputStream fos = new FileOutputStream(new File(savePath)); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos); encoder.encode(image); image.flush(); fos.flush(); fos.close(); return savePath; } /** * <b>function:</b> 可以设置图片缩放质量,并且可以根据指定的宽高缩放图片 * @author hoojo * @createDate 2012-2-7 上午11:01:27 * @param width 缩放的宽度 * @param height 缩放的高度 * @param quality 图片压缩质量,最大值是1; 使用枚举值:{@link ImageQuality} * Some guidelines: 0.75 high quality、0.5 medium quality、0.25 low quality * @param savePath 保存目录 * @param targetImage 即将缩放的目标图片 * @return 图片保存路径、名称 * @throws ImageFormatException * @throws IOException */ public static String resize(int width, int height, Float quality, String savePath, Image targetImage) throws ImageFormatException, IOException { width = Math.max(width, 1); height = Math.max(height, 1); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); image.getGraphics().drawImage(targetImage, 0, 0, width, height, null); if (savePath == null || "".equals(savePath)) { savePath = DEFAULT_FILE_PATH + System.currentTimeMillis() + DEFAULT_IMAGE_FORMAT; } FileOutputStream fos = new FileOutputStream(new File(savePath)); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos); JPEGEncodeParam encodeParam = JPEGCodec.getDefaultJPEGEncodeParam(image); if (quality == null || quality <= 0) { quality = DEFAULT_SCALE_QUALITY; } /** 设置图片压缩质量 */ encodeParam.setQuality(quality, true); encoder.encode(image, encodeParam); image.flush(); fos.flush(); fos.close(); return savePath; } /** * <b>function:</b> 通过指定大小和图片的大小,计算出图片缩小的合适大小 * @author hoojo * @createDate 2012-2-6 下午05:53:10 * @param width 指定的宽度 * @param height 指定的高度 * @param image 图片文件 * @return 返回宽度、高度的int数组 */ public static int[] getSize(int width, int height, Image image) { int targetWidth = image.getWidth(null); int targetHeight = image.getHeight(null); double scaling = getScaling(targetWidth, targetHeight, width, height); long standardWidth = Math.round(targetWidth * scaling); long standardHeight = Math.round(targetHeight * scaling); return new int[] { Integer.parseInt(Long.toString(standardWidth)), Integer.parseInt(String.valueOf(standardHeight)) }; } /** * <b>function:</b> 通过指定的比例和图片对象,返回一个放大或缩小的宽度、高度 * @author hoojo * @createDate 2012-2-7 上午10:27:59 * @param scale 缩放比例 * @param image 图片对象 * @return 返回宽度、高度 */ public static int[] getSize(float scale, Image image) { int targetWidth = image.getWidth(null); int targetHeight = image.getHeight(null); long standardWidth = Math.round(targetWidth * scale); long standardHeight = Math.round(targetHeight * scale); return new int[] { Integer.parseInt(Long.toString(standardWidth)), Integer.parseInt(String.valueOf(standardHeight)) }; } public static int[] getSize(int width, Image image) { int targetWidth = image.getWidth(null); int targetHeight = image.getHeight(null); long height = Math.round((targetHeight * width) / (targetWidth * 1.00f)); return new int[] { width, Integer.parseInt(String.valueOf(height)) }; } public static int[] getSizeByHeight(int height, Image image) { int targetWidth = image.getWidth(null); int targetHeight = image.getHeight(null); long width = Math.round((targetWidth * height) / (targetHeight * 1.00f)); return new int[] { Integer.parseInt(String.valueOf(width)), height }; } /** * * <b>function:</b> 将指定的targetFile图片文件的宽度、高度大于指定width、height的图片缩小,并保存在savePath目录 * @author hoojo * @createDate 2012-2-6 下午04:57:02 * @param width 缩小的宽度 * @param height 缩小的高度 * @param savePath 保存目录 * @param targetImage 改变的目标图片 * @return 图片保存路径、名称 * @throws ImageFormatException * @throws IOException */ public static String resize(int width, int height, String savePath, File targetFile) throws ImageFormatException, IOException { image = ImageIO.read(targetFile); int[] size = getSize(width, height, image); return resize(size[0], size[1], savePath, image); } /** * * <b>function:</b> 将指定的targetURL网络图片文件的宽度、高度大于指定width、height的图片缩小,并保存在savePath目录 * @author hoojo * @createDate 2012-2-6 下午04:57:07 * @param width 缩小的宽度 * @param height 缩小的高度 * @param savePath 保存目录 * @param targetImage 改变的目标图片 * @return 图片保存路径、名称 * @throws ImageFormatException * @throws IOException */ public static String resize(int width, int height, String savePath, URL targetURL) throws ImageFormatException, IOException { image = ImageIO.read(targetURL); int[] size = getSize(width, height, image); return resize(size[0], size[1], savePath, image); } /** * <b>function:</b> 将一个本地的图片文件按照指定的比例进行缩放 * @author hoojo * @createDate 2012-2-7 上午10:29:18 * @param scale 缩放比例 * @param savePath 保存文件路径、名称 * @param targetFile 本地图片文件 * @return 新的文件名称 * @throws ImageFormatException * @throws IOException */ public static String resize(float scale, String savePath, File targetFile) throws ImageFormatException, IOException { image = ImageIO.read(targetFile); int[] size = getSize(scale, image); return resize(size[0], size[1], savePath, image); } /** * <b>function:</b> 将一个网络图片文件按照指定的比例进行缩放 * @author hoojo * @createDate 2012-2-7 上午10:30:56 * @param scale 缩放比例 * @param savePath 保存文件路径、名称 * @param targetFile 本地图片文件 * @return 新的文件名称 * @throws ImageFormatException * @throws IOException */ public static String resize(float scale, String savePath, URL targetURL) throws ImageFormatException, IOException { image = ImageIO.read(targetURL); int[] size = getSize(scale, image); return resize(size[0], size[1], savePath, image); } /** * <b>function:</b> 按照固定宽度进行等比缩放本地图片 * @author hoojo * @createDate 2012-2-7 上午10:49:56 * @param width 固定宽度 * @param savePath 保存路径、名称 * @param targetFile 本地目标文件 * @return 返回保存路径 * @throws ImageFormatException * @throws IOException */ public static String resize(int width, String savePath, File targetFile) throws ImageFormatException, IOException { image = ImageIO.read(targetFile); int[] size = getSize(width, image); return resize(size[0], size[1], savePath, image); } /** * <b>function:</b> 按照固定宽度进行等比缩放网络图片 * @author hoojo * @createDate 2012-2-7 上午10:50:52 * @param width 固定宽度 * @param savePath 保存路径、名称 * @param targetFile 本地目标文件 * @return 返回保存路径 * @throws ImageFormatException * @throws IOException */ public static String resize(int width, String savePath, URL targetURL) throws ImageFormatException, IOException { image = ImageIO.read(targetURL); int[] size = getSize(width, image); return resize(size[0], size[1], savePath, image); } /** * * <b>function:</b> 按照固定高度进行等比缩放本地图片 * @author hoojo * @createDate 2012-2-7 上午10:51:17 * @param height 固定高度 * @param savePath 保存路径、名称 * @param targetFile 本地目标文件 * @return 返回保存路径 * @throws ImageFormatException * @throws IOException */ public static String resizeByHeight(int height, String savePath, File targetFile) throws ImageFormatException, IOException { image = ImageIO.read(targetFile); int[] size = getSizeByHeight(height, image); return resize(size[0], size[1], savePath, image); } /** * <b>function:</b> 按照固定高度进行等比缩放网络图片 * @author hoojo * @createDate 2012-2-7 上午10:52:23 * @param height 固定高度 * @param savePath 保存路径、名称 * @param targetFile 本地目标文件 * @return 返回保存路径 * @throws ImageFormatException * @throws IOException */ public static String resizeByHeight(int height, String savePath, URL targetURL) throws ImageFormatException, IOException { image = ImageIO.read(targetURL); int[] size = getSizeByHeight(height, image); return resize(size[0], size[1], savePath, image); } /** * <b>function:</b> * @author hoojo * @createDate 2012-2-3 上午10:08:47 * @param args * @throws IOException * @throws MalformedURLException * @throws ImageFormatException */ public static void main(String[] args) throws ImageFormatException, MalformedURLException, IOException { System.out.println(ScaleImageUtils.resize(140, 140, null, new URL("http://www.open-open.com/lib/images/logo.jpg"))); ScaleImageUtils.resize(100, 100, ImageQuality.high.getQuality(), null, ImageIO.read(new URL("http://www.open-open.com/lib/images/logo.jpg"))); } }
发表评论
-
Java Comparable和Comparator
2016-06-26 08:52 699http://my.oschina.net/android52 ... -
Java集合框架之fastutil & koloboke
2016-06-23 14:04 2473Java集合框架之fastutil http://rensan ... -
ehcache 分布式支持
2016-06-05 22:26 1099原文 http://my.oschina.net/glenxu ... -
Intellij IDEA插件开发入门
2016-05-26 11:42 2883原文: http://blog.csdn.net/dc_726 ... -
阿里巴巴Druid数据源的配置与使用
2016-05-24 17:42 1546http://my.oschina.net/wjme/blog ... -
mysql中间件研究(Atlas,cobar,TDDL), 分库分表插件
2016-05-09 14:15 3445http://www.guokr.com/blog/47576 ... -
Java集合: Queue和Deque
2016-05-09 09:49 1864Queue http://my.oschina.net/kev ... -
使用gzip优化web应用(filter实现)
2016-05-07 01:45 1032使用gzip优化web应用(filter实现) http:// ... -
Byteman 3.0.5 发布,Java 字节码注入工具
2016-04-23 10:29 1770Byteman 3.0.5 发布,Java 字 ... -
RandomStringUtils的说明和生成随机汉字
2016-04-20 15:21 1394更多参考: http://my.oschina.net/wil ... -
通过IP地址获取地理位置
2016-04-20 15:19 895http://my.oschina.net/githubhty ... -
Java编程中使用正则表达式过滤非数字字符串
2016-04-14 13:51 1719/** * * @param str ... -
非对称加密DH算法,DH代码实现
2016-04-13 11:33 1358RSA算法原理(一)http:// ... -
企业支付宝账号开发接口教程
2016-03-31 14:52 1240企业支付宝账号开发接口教程--JAVA-UTF-8(实际操作- ... -
java double类型数据操作工具类
2016-03-28 17:36 1242http://my.oschina.net/yxwblog/b ... -
double转换到BigDecimal
2016-03-28 17:11 1547BigDecimal b = new BigDecimal(d ... -
Java 生成好看的验证码
2016-03-23 10:52 3362http://www.oschina.net/code/sni ... -
Linux环境安装配置Swftools
2016-03-22 21:01 1107http://tetop.blog.51cto.com/188 ... -
java压缩与解压缩文件
2016-03-20 22:03 1469http://www.oschina.net/code/sni ... -
java图像压缩
2016-03-19 23:20 952http://my.oschina.net/686991/bl ...
相关推荐
java操作图片的工具类,包括图片放大缩小、图片裁剪、打水印(文字水印和图片水印)
总的来说,PHP的GD库为我们提供了一套强大的工具,可以方便地进行图像处理,包括创建缩略图、缩放图片以及压缩图片。通过熟练运用这些功能,我们可以提升网站或应用的用户体验,同时优化服务器资源的使用。
这些工具通常提供“自由变换”功能,允许用户输入特定的缩放比例,或者通过拖动角落的控制点来等比例调整图片大小。 在编程领域,我们也可以利用各种编程语言实现图片的按比例缩放。例如,Python中的PIL(Pillow)...
在本文中,我们将深入探讨如何基于Springmvc实现图片上传及生成缩略图的功能。Springmvc是Spring框架的一个重要模块,用于构建MVC模式的Web应用,它提供了强大的数据绑定、模型映射、视图渲染等功能,是Java开发中的...
- 缩略图生成:通过图像处理函数,如“图像缩放”或“图像剪切”,将原图转换为适合列表框显示的小尺寸图片。 - 显示图片:将缩略图数据赋值给超级列表框的指定单元格,通常可以通过“设置图像”命令实现。 2. **...
在Java编程中,生成PNG透明图片的缩略图是一项常见的任务,特别是在开发图形用户界面、网站或移动应用时。PNG格式因其支持透明度而受到欢迎,但缩略图的生成需要考虑保持图像质量和透明效果。以下是一些关于如何在...
java上传文件util包,可直接使用,需将地址改为自己的存储地址,
java图片处理工具类JAR包 java-image-scalingjar
总结来说,这个代码类提供了生成图片缩略图的便利工具,通过简单的API调用即可完成图片的缩放、保存和错误处理。在理解并使用这个类时,开发者需要注意其底层使用的图像处理库、图片格式的支持、缩放算法以及性能...
"纯Java验证码工具类" 提供了一种简便的方法来生成这种安全机制,无需依赖其他语言或库。这个工具类可以被轻松地集成到任何Java项目中,为你的应用程序添加一道防线。 验证码生成通常包括以下几个关键步骤: 1. **...
在Java编程环境中,生成Word文档是一项常见的需求,特别是在企业级应用中,如报表生成、合同模板等。...这个“JAVA生成WORD工具类”简化了这一过程,使得开发者可以方便地在代码中动态创建Word文档。
在这个"java生成缩略图.zip"压缩包中,我们可能找到了一份Java源代码,用于演示如何在Java环境下创建图像的缩略图。 首先,我们要了解在Java中生成缩略图的关键概念和技术。Java的`java.awt.image`和`javax.imageio...
7. **图片预览技术**:系统可能会利用thumbnailator或其他类似的库来生成图片缩略图,提供快速预览的功能。 8. **文件遍历与目录树结构**:系统可能需要展示图片所在的文件夹结构,这就需要用到递归遍历文件夹的...
thumbnailator(包括jar包跟api) java用于图片压缩 生成缩略图 添加水印等 这是我见过最好的压缩工具了 使用方法: Thumbnails.of(new File("path/to/directory").listFiles()) .size(640, 480) .outputFormat(...
这篇博客的作者提供了一个自封装的JAVA操作MySQL数据库的工具类,这有助于简化数据库的交互过程,提高代码的可读性和可维护性。这里我们将深入探讨这个工具类可能涉及的关键知识点。 1. **JDBC(Java Database ...
网上流传的‘一张令所有人吃惊的图片’,是一张椅子的图片,但是,如果你的系统是XP,把它下载后保存到任意一个文件夹中,打开文件夹,用缩略图的方式查看,会看到图片的缩略图是一个机器女人坐在地上。 经过一番研究...
该工具旨在解决这类问题,恢复PDF文件的缩略图显示,提升用户的工作效率。 首先,我们需要了解PDF文件和缩略图的基本概念。PDF(Portable Document Format)是一种用于表示文档的文件格式,包括文本格式和图像,...
该工具类是Java编写下载即可使用,该工具类中有生成各种长度的订单号,有英文数字混合的,有数字的
在网页设计和开发中,图片是重要的组成部分,但大尺寸的图片可能会导致页面加载速度变慢,影响用户体验。为了优化这一问题,PHP 提供了一种...通过深入学习和实践,我们可以创建出更加高效、功能丰富的图片处理工具。
这个工具包“Delphi编写的批量制作缩略图的工具”显然利用了Delphi的强大功能来创建一个应用程序,该程序能够自动化处理图像,生成缩略图。这在处理大量图片,如照片库、产品目录或者网站设计时非常有用,可以极大地...