要使用无损压缩图片需要导入两个包
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
在Eclipse中可能会出现如下错误提示:
Access restriction: The type JPEGImageEncoder is not accessible due to restriction on required library C:\Java\jre1.6.0_07\lib\rt.jar
这是由于Eclipse默认把这些受访问限制的API设成了Error。
解决办法:点击Window->Preferences->Java->Compiler->Errors/Warnings->Deprecated and restricted API->Forbidden reference(access rules) 修改成Warning 即可。
/**
* 创建图片缩略图(等比缩放)
* @param src 源图片文件完整路径
* @param dist 目标图片文件完整路径
* @param width 缩放的宽度
* @param height 缩放的高度
*/
public void createThumbnail(String src,String dist,float width,float height){
try{
File srcfile = new File(src);
if(!srcfile.exists()){
System.out.println("文件不存在");
return;
}
BufferedImage image = ImageIO.read(srcfile);
//获得缩放的比例
double ratio = 1.0;
//判断如果高、宽都不大于设定值,则不处理
if(image.getHeight()>height || image.getWidth()>width){
if(image.getHeight() > image.getWidth()){
ratio = height / image.getHeight();
} else {
ratio = width / image.getWidth();
}
}
//计算新的图面宽度和高度
int newWidth =(int)(image.getWidth()*ratio);
int newHeight =(int)(image.getHeight()*ratio);
BufferedImage bfImage= new BufferedImage(newWidth,newHeight,BufferedImage.TYPE_INT_RGB);
bfImage.getGraphics().drawImage(image.getScaledInstance(newWidth, newHeight,Image.SCALE_SMOOTH),0,0,null);
FileOutputStream os = new FileOutputStream(dist);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
encoder.encode(bfImage);
os.close();
System.out.println("创建缩略图成功");
} catch(Exception e) {
System.out.println("创建缩略图发生异常"+e.getMessage());
}
}
public static void main(String[] args){
createThumbnail("D:\\1.png","D:\\a.png",100,100);
createThumbnail("D:\\1.jpg","D:\\b.png",100,100);
createThumbnail("D:\\1.jpg","D:\\c.jpg",100,100);
}
分享到:
相关推荐
在IT行业中,尤其是在Web开发和图像处理领域,创建图片的缩略图是一项常见的任务。Java作为一门广泛应用的编程语言,提供了多种方式来处理图像,包括生成等比例缩略图。本篇文章将深入探讨如何使用Java实现图片的等...
在JavaScript(JS)中,创建一个按比例截取图片中间部分并保持图片不失真的缩略图功能是一项常见的需求。这通常应用于图片预览、相册展示等场景,以提高用户体验和节省网页加载资源。以下是对这个主题的详细阐述: ...
网上找的缩略图生成方法都不够清晰,于是决定自己研究和改进生成缩略图方法。此方法压缩后的图片小,清晰度高,压缩速度快。5000张图片大概抽根烟的功夫就压缩完了。高清的哦。各种参数都是可配的,方便移植到自己...
- **解释**:此标题简明扼要地概括了本文档的主题——如何在不失真的情况下生成图片的缩略图。 #### 描述:用picture显示不失真缩略图,里面提供的是一个方法 - **解释**:此描述进一步明确了文档的目的和实现方式...
EGCodec.createJPEGEncoder(out); JPEGEncodeParam param = ...总的来说,这段Java代码提供了一个实用的工具,能够在不失真过大(通过调整压缩质量)的前提下,根据图片原始大小智能地压缩图片,满足不同场景的需求。
在JavaScript中,实现图片的等比例缩放以保持不失真是一项常见的需求,特别是在网页设计和动态展示中。这里我们将深入探讨如何实现这一功能,并解决图片在切换时保持正确比例的问题。 首先,我们要明白图片不失真的...
3. 使用Java的图像处理API或第三方库读取上传的图片,并根据需要生成缩略图。 4. 调整缩略图的尺寸,保持原图的宽高比,避免图像失真。 5. 保存缩略图到服务器,并可能将其路径保存到数据库,以便后续展示或访问。 6...
在Java服务器页面(JSP)中,上传图片并生成缩略图是一项常见的需求,尤其在构建网站或Web应用时。这个过程涉及到多个步骤,包括文件上传、图片处理和存储。以下将详细介绍如何实现这一功能。 1. **文件上传**: -...
高清缩略图是指在不失真的情况下,将高分辨率的原图压缩成适合网页显示的小尺寸图片。这通常涉及到图像的重采样过程,需要保持图片的比例,避免拉伸或扭曲。 在JavaScript中,我们可以使用HTML5的Canvas元素来实现...
3. **图片压缩不失真**: Java的`ImageIO.write()`方法可用于保存图片,通过设置JPEG或PNG格式的压缩质量来控制大小: ```java File output = new File("output.jpg"); ImageIO.write(resized, "JPEG", output);...
在ASP.NET中生成图片缩略图是一项常见的任务,特别是在构建网站或应用时,需要对上传的图片进行处理,如创建预览、展示列表或者优化加载速度。本文将深入探讨如何利用ASP.NET技术来实现这一功能。 首先,我们需要...
无论使用哪种方法,创建缩略图的关键在于保持原始图像的比例,避免失真。同时,要考虑到性能优化,尤其是在处理大量图像时,如合理地使用内存和避免不必要的资源消耗。在实际应用中,根据项目需求和所使用的编程语言...
总结起来,Java图片等比压缩和裁剪涉及读取图片、计算比例、缩放、裁剪和保存等多个步骤,需要理解图像处理的基本原理,并利用适当的库来实现。这个过程中需要注意保持图像质量,避免失真,并确保符合预期的输出尺寸...
图片等比缩放是指按照比例缩小或放大图片,保持其长宽比不变,防止图像拉伸或压缩导致失真。这是图像处理中保持图片原有形状的重要原则,尤其在处理包含几何形状或者人物肖像的图像时更为关键。 XnView是一款功能...
这个"php生成任意尺寸图片的缩略图类.zip"提供了一个PHP类库,可以帮助开发者方便地创建任意尺寸的图片缩略图。下面将详细解释这个类库的工作原理和可能涉及的关键知识点。 1. **类的结构与工作流程** - 类库通常...
缩略图的创建能够帮助我们快速预览大图片,节省存储空间,提高用户体验。以下是一个详细的C#创建缩略图的知识点概述: 1. **System.Drawing命名空间**:在C#中,创建缩略图主要依赖于`System.Drawing`命名空间,它...
在IT行业中,图片等比缩放展示是一项基本且重要的技术,尤其在网页设计和移动应用开发中至关重要。等比缩放确保了图片在不同尺寸的屏幕或窗口中保持其原始的比例,避免出现图像拉伸或压缩导致失真的情况。本话题主要...
Java压缩图片util,可等比例宽高不失真压缩,也可直接指定压缩后的宽高,只能用炫酷来形容,感兴趣就下载看看吧
- 示例代码中未直接提供生成PDF缩略图的方法,但提到了一个生成图片缩略图的简单方法,通过调整Bitmap对象的尺寸来创建缩略图。 8. **性能优化**: - 为了提高效率,生成缩略图时通常会调整原始图像的大小,减少...