代码实现如下:
第一个开源: Thumbnailator
long begin = System.currentTimeMillis();
try {
Thumbnails.of(new File("E:\\test\\photos\\亲密敌人.jpg"))
.size(300, 200)
//.rotate(90)
.outputQuality(0.8f)
.toFile(new File("E:\\000.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
System.out.println(end - begin);
第二个开源: java-image-scaling
long begin2 = System.currentTimeMillis();
File fileOne = new File("E:\\test\\photos\\阿凡达.jpg");
File hd_ad = new File("E:\\test\\data\\高清页面-广告图片.jpg");
try {
BufferedImage bufferedImage11 = new ThumpnailRescaleOp(1104,540).doFilter(ImageIO.read(fileOne),null,1104, 540);
ImageIO.write(bufferedImage11, "jpg", hd_ad);
} catch (IOException e) {
e.printStackTrace();
}
long end2 = System.currentTimeMillis();
System.out.println(end2-begin2);
第三个开源: EasyImage
long begin3 = System.currentTimeMillis();
Image image2 = new Image("E:\\test\\photos\\亲密敌人.jpg");
image2.resize(290, 400);
image2.saveAs("e:\\222.jpg");
long end3 = System.currentTimeMillis();
System.out.println(end3 - begin3);
//融合两张图片
Image image3 = new Image("E:\\test\\photos\\亲密敌人.jpg");
image3.combineWithPicture("E:\\test\\photos\\泰坦尼克号.jpg");
image3.saveAs("E:\\333.jpg");
//强调图像的某个部分:
Image image4 = new Image("E:\\test\\photos\\亲密敌人.jpg");
image4.emphasize(250, 200, 2300, 500);
image4.saveAs("E:\\444.jpg");
java-image-scaling图片失真问题解决方案:
原因:图片本身的问题(ICC丢失或不全)
public static BufferedImage toBufferedImage(File img) throws IOException {
Image image = Toolkit.getDefaultToolkit().getImage(img.getPath());
BufferedImage bimage = null;
if (image instanceof BufferedImage) {
return (BufferedImage) image;
}
image = new ImageIcon(image).getImage();
int width = image.getWidth(null);
int height = image.getHeight(null);
if (width < 0 || height < 0) {
/*Map<String,Integer> map = getImageSize(img);
width = map.get(IMAGE_WIDTH);
height = map.get(IMAGE_HEIGHT);*/
return null;
}
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
try {
int transparency = Transparency.OPAQUE;
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
bimage = gc.createCompatibleImage(width, height, transparency);
} catch (HeadlessException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
if (bimage == null) {
int type = BufferedImage.TYPE_INT_RGB;
bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);
}
Graphics g = bimage.createGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
return bimage;
}
调用:
File fileOne = new File("E:\\test\\photos\\test.jpg");
BufferedImage bufferedImageTmp2 = null;
try {
bufferedImageTmp2 = toBufferedImage(fileOne);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedImage bufferedImage1 = new ThumpnailRescaleOp(470,300).doFilter(bufferedImageTmp2,null,470, 300);
相关推荐
2. **Xuggler库:** Xuggler是一个基于Java的开源库,它提供了更现代和强大的多媒体处理能力,包括生成视频缩略图。它支持多种视频格式,并且允许开发者在指定时间点提取帧。 3. **Java Advanced Imaging (JAI):**...
在Java编程中,生成缩略图是一项常见的任务,特别是在处理图像处理、网页设计或移动应用开发等领域。这个主题涉及到如何利用Java的APIs来创建图片的缩小版本,以节省存储空间,提高页面加载速度,或者优化用户体验。...
**Java开源图片框架thumbnailator-0.4.8.jar** 是一个专为Java开发者设计的高效、高质量的图片处理库,特别适用于生成缩略图。这个框架提供了丰富的功能,使得在Java应用程序中处理图片变得更加简单。thumbnailator...
### 显示DWG文件缩略图的三种方法 随着信息技术的发展与应用的...尤其是第三种方法——完全独立的实现方式,凭借其高度的灵活性、强大的兼容性和卓越的性能表现,成为了当前环境下展示DWG文件缩略图的最佳选择之一。
在Java编程环境中,处理图像是一项常见的任务,包括创建缩略图、添加水印、裁剪以及转换图片格式。这些操作可以用于网站上的图像展示、移动应用的资源优化或任何需要图像处理的项目。"Thumbnailator"是Java的一个...
SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。 SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对...
在Java中生成缩略图是一项常见的任务,尤其是在开发Web应用或者需要处理用户上传图片的系统中。这个过程涉及对原始图像进行重新尺寸调整,以创建一个较小的版本,通常用于预览或节省存储空间。在提供的代码片段中,...
总的来说,JAVA实现视频截取缩略图虽然需要借助第三方库,但借助这些库的强大功能,我们可以轻松地完成这一任务。在设计和实现过程中,理解视频编码原理和库的内部工作机制是非常有益的,可以帮助我们编写更高效、...
Scrender利用了Java编程语言的强大功能,提供了高效且稳定的方式来捕获网页的可视化表示,即缩略图。 首先,我们来了解一下Scrender的基本工作原理。它通常通过模拟浏览器的行为来加载网页,然后截取渲染后的页面...
这个压缩包提供的资源能够帮助开发者利用ImageJ进行图片处理,包括格式转换、图片的放大与缩小,以及创建高清晰度的缩略图。 1. **ImageJ的基本功能**: - **格式转换**:ImageJ支持多种图像格式的读取和写入,如...
在这个领域,thumbnailator是一个备受青睐的Java库,它提供了简单易用的API,用于快速创建图片缩略图和其他图片处理工作。本文将详细介绍thumbnailator库及其在图片处理中的应用。 thumbnailator是日本开发者...
5. **可扩展性**:作为开源项目,CshBBrainPP的设计应该允许开发者根据需求进行定制和扩展,比如增加图片处理模块(如缩略图生成、格式转换等)或与其他系统集成。 二、使用CshBBrainPP 1. **部署**:部署...
通过Java结合GDAL,我们可以克服Java处理大图片的限制,实现高效的重采样和缩略图制作。这需要对GDAL库有深入的理解,并熟悉其在Java环境中的使用方法。同时,为了确保程序的稳定性和性能,还需要掌握有效的内存管理...
本主题将详细介绍如何利用FastDFS和Nginx搭建一个分布式图片存储系统,并实现动态生成缩略图的功能。 首先,我们来看FastDFS。FastDFS设计的主要目标是为互联网应用提供高效的文件存储服务,它将文件存储与文件访问...
PDFBox是Apache软件基金会开发的一个开源Java库,主要用于处理PDF文档。这个库提供了广泛的API,可以用来创建、编辑和读取PDF文档。在本场景中,我们关注的是PDFBox的一个特定功能:生成PDF文件的缩略图。这有助于在...
在移动应用开发中,特别是在处理图像展示时,`PhotoView`是一个非常实用的库,它为用户提供了丰富的交互体验,如左右滑动切换图片、双指缩放以及点击缩略图全屏预览等。本篇文章将深入探讨`PhotoView`的特性、使用...
在本项目中,"纯Java实现整个网页截图项目源代码" 是一个利用Java编程语言来实现的实用程序,它能够捕获整个网页的图像并将其保存为图片文件。这个项目的核心在于利用DJNativeSwing组件,这是一个开源的Java库,它...
总的来说,处理Tiff格式的图片在Java中主要依赖于像JAI这样的第三方库,通过这些库我们可以轻松地读取、转换和保存Tiff图像,满足不同场景的需求。当然,随着技术的发展,还有更多的图像处理库涌现出来,为开发者...
Java 图片处理解决方案中,ImageMagick 是一个免费的创建、编辑、合成图片的软件,可以实现图片切割、颜色替换、图片缩略图、图片水印等各种效果。ImageMagick 是免费开源软件,支持大多数操作系统,包括 Linux、...
《生成图片缩略图Jar包:使用Thumbnailator库进行图片处理》 在现代软件开发中,尤其是在Web应用和移动应用中,图片的处理是不可或缺的一部分。生成图片缩略图是常见的需求,它可以帮助我们快速展示大量的图片,...