`
gaozzsoft
  • 浏览: 426894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

JAVA实现图片处理缩略图-三种开源实现方式

 
阅读更多

代码实现如下:

第一个开源: 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);

分享到:
评论

相关推荐

    java视频生成图片(缩略图)-实例-(指定时间)

    2. **Xuggler库:** Xuggler是一个基于Java的开源库,它提供了更现代和强大的多媒体处理能力,包括生成视频缩略图。它支持多种视频格式,并且允许开发者在指定时间点提取帧。 3. **Java Advanced Imaging (JAI):**...

    java 缩略图实现

    在Java编程中,生成缩略图是一项常见的任务,特别是在处理图像处理、网页设计或移动应用开发等领域。这个主题涉及到如何利用Java的APIs来创建图片的缩小版本,以节省存储空间,提高页面加载速度,或者优化用户体验。...

    Java开源图片框架thumbnailator-0.4.8.jar

    **Java开源图片框架thumbnailator-0.4.8.jar** 是一个专为Java开发者设计的高效、高质量的图片处理库,特别适用于生成缩略图。这个框架提供了丰富的功能,使得在Java应用程序中处理图片变得更加简单。thumbnailator...

    显示DWG文件缩略图的三种方法

    ### 显示DWG文件缩略图的三种方法 随着信息技术的发展与应用的...尤其是第三种方法——完全独立的实现方式,凭借其高度的灵活性、强大的兼容性和卓越的性能表现,成为了当前环境下展示DWG文件缩略图的最佳选择之一。

    java处理图片,缩略图,添加水印,格式转换,Thumbnailator

    在Java编程环境中,处理图像是一项常见的任务,包括创建缩略图、添加水印、裁剪以及转换图片格式。这些操作可以用于网站上的图像展示、移动应用的资源优化或任何需要图像处理的项目。"Thumbnailator"是Java的一个...

    Java图片处理类库SimpleImage.zip

    SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。 SimpleImage中的ImageRender是图片处理的基类,它是一个抽象类,我们看到,该类中定义了一个抽象方法render(),同时持有一个对...

    java生成缩略图.pdf

    在Java中生成缩略图是一项常见的任务,尤其是在开发Web应用或者需要处理用户上传图片的系统中。这个过程涉及对原始图像进行重新尺寸调整,以创建一个较小的版本,通常用于预览或节省存储空间。在提供的代码片段中,...

    视频截取缩略图

    总的来说,JAVA实现视频截取缩略图虽然需要借助第三方库,但借助这些库的强大功能,我们可以轻松地完成这一任务。在设计和实现过程中,理解视频编码原理和库的内部工作机制是非常有益的,可以帮助我们编写更高效、...

    一个生成网页缩略图的开源工具

    Scrender利用了Java编程语言的强大功能,提供了高效且稳定的方式来捕获网页的可视化表示,即缩略图。 首先,我们来了解一下Scrender的基本工作原理。它通常通过模拟浏览器的行为来加载网页,然后截取渲染后的页面...

    JAVA ImageJ 支持图片格式转换,图片放大缩小等,功能非常强大,缩略图高清晰,有实例代码

    这个压缩包提供的资源能够帮助开发者利用ImageJ进行图片处理,包括格式转换、图片的放大与缩小,以及创建高清晰度的缩略图。 1. **ImageJ的基本功能**: - **格式转换**:ImageJ支持多种图像格式的读取和写入,如...

    google图片处理工具thumbnailator-0.4.8.jar

    在这个领域,thumbnailator是一个备受青睐的Java库,它提供了简单易用的API,用于快速创建图片缩略图和其他图片处理工作。本文将详细介绍thumbnailator库及其在图片处理中的应用。 thumbnailator是日本开发者...

    开源图片服务器 CshBBrainPP.zip

    5. **可扩展性**:作为开源项目,CshBBrainPP的设计应该允许开发者根据需求进行定制和扩展,比如增加图片处理模块(如缩略图生成、格式转换等)或与其他系统集成。 二、使用CshBBrainPP 1. **部署**:部署...

    java结合gdal对大图片进行重采样

    通过Java结合GDAL,我们可以克服Java处理大图片的限制,实现高效的重采样和缩略图制作。这需要对GDAL库有深入的理解,并熟悉其在Java环境中的使用方法。同时,为了确保程序的稳定性和性能,还需要掌握有效的内存管理...

    fastdfs+nginx 分布式存储图片,支持动态缩略图

    本主题将详细介绍如何利用FastDFS和Nginx搭建一个分布式图片存储系统,并实现动态生成缩略图的功能。 首先,我们来看FastDFS。FastDFS设计的主要目标是为互联网应用提供高效的文件存储服务,它将文件存储与文件访问...

    pdfbox,生成pdf文件的缩略图

    PDFBox是Apache软件基金会开发的一个开源Java库,主要用于处理PDF文档。这个库提供了广泛的API,可以用来创建、编辑和读取PDF文档。在本场景中,我们关注的是PDFBox的一个特定功能:生成PDF文件的缩略图。这有助于在...

    PhotoView 左右滑动查看图片,可放大、缩小、点缩略图全屏预览

    在移动应用开发中,特别是在处理图像展示时,`PhotoView`是一个非常实用的库,它为用户提供了丰富的交互体验,如左右滑动切换图片、双指缩放以及点击缩略图全屏预览等。本篇文章将深入探讨`PhotoView`的特性、使用...

    纯Java实现整个网页截图项目源代码

    在本项目中,"纯Java实现整个网页截图项目源代码" 是一个利用Java编程语言来实现的实用程序,它能够捕获整个网页的图像并将其保存为图片文件。这个项目的核心在于利用DJNativeSwing组件,这是一个开源的Java库,它...

    java处理tiff格式图片,转为其他类型

    总的来说,处理Tiff格式的图片在Java中主要依赖于像JAI这样的第三方库,通过这些库我们可以轻松地读取、转换和保存Tiff图像,满足不同场景的需求。当然,随着技术的发展,还有更多的图像处理库涌现出来,为开发者...

    Java图片处理解决方案:ImageMagick快速入门教程.docx

    Java 图片处理解决方案中,ImageMagick 是一个免费的创建、编辑、合成图片的软件,可以实现图片切割、颜色替换、图片缩略图、图片水印等各种效果。ImageMagick 是免费开源软件,支持大多数操作系统,包括 Linux、...

    生成图片缩略图Jar包

    《生成图片缩略图Jar包:使用Thumbnailator库进行图片处理》 在现代软件开发中,尤其是在Web应用和移动应用中,图片的处理是不可或缺的一部分。生成图片缩略图是常见的需求,它可以帮助我们快速展示大量的图片,...

Global site tag (gtag.js) - Google Analytics