当前位置:网站首页 > Java教程 > 正文

java图片教程视频



本文中介绍,如何使用Java优雅处理图片;包括:主流图片格式转码、图片压缩(缩略图生成)等。主要用到的外部工具包:

  • Google Thumbnailator
  • webp-imageio-core

搭建了一个在线演示地址:https://tool.mintimate.cn/processIMG

和以前一样,我们觉得有用、有必要录个视频的内容,我们还是会花时间做个视频:

  • Read:JPEG 2000, JPG, tiff, bmp, PCX, gif, WBMP, PNG, RAW, JPEG, PNM, tif, TIFF, wbmp, jpeg, jbig2, jpg, JPEG2000, BMP, pcx, GIF, png, raw, JBIG2, pnm, TIF, jpeg2000, jpeg 2000
  • Write:JPEG 2000, JPG, tiff, bmp, PCX, gif, WBMP, PNG, RAW, JPEG, PNM, tif, TIFF, wbmp, jpeg, jpg, JPEG2000, BMP, pcx, GIF, png, raw, pnm, TIF, jpeg2000, jpeg 2000

所以,像Apple的格式,是不支持使用进行处理的。

首先添加包,如果你是Maven工程,或者使用Maven管理的项目,添加依赖:

上面的依赖项定义是获取0.4.x版本范围内的的最新可用版本。如果需要特定版本的Thumbnailator,则将[0.4,0.5)替换为特定版本号,例如0.4.13

另外,如果下载太慢,可以把Maven换成国内下载源(比如:阿里Maven镜像源)

如果你不是Maven工程,可以下载的最新版本,如何手动添加lib包,最新版本下载:https://github.com/coobird/thumbnailator/releases/latest

的使用十分简单,原本你需要使用Java的、和来处理图片,直接封装上述操作。简单的使用演示:

  • 原图片地址:
  • 输出图片大小:
  • 输出图片格式:
  • IO流输出地址(输出图片):

演示代码:

其中:

  • 是图片尺寸等比缩放,为类型。
  • 是输出图片的类型,注意:默认不支持,如果需要使用,需要提前安装webp-imageio-core,可以看看下文如何使Java支持。
  • 是输出图片的质量,即:清晰度/分辨率。

演示代码:

其中,原图片文件,可以使用字符串来代替地址:

通常,缩略图输出体积已经很小,但是还是可以使用来降低图片质量(分辨率)。

很简单;添加即可。如:

添加水印也十分简单,添加即可:

我在我网站上使用上述包,搭建了一个在线演示地址:https://tool.mintimate.cn/processIMG

功能:用户上传图片后,系统更具用户的选择的输出格式,转码图片。

前端传送图片到后台,我们后台可以对文件扩展名进行判断:

虽然可以直接自动根据创建对应文件对象,但是为了更方便我们自己控制,我们手动创建:

因为,我是使用快速构建,我其实是创建了一个配置规则,可以使透明图片转为时,透明背景渲染为白色。(单纯为了好看……)。实现细节:

这样,就可以成功转码图片了(运用恰当,还可以压缩图片( ;´Д`)):

左边为原图,右边为转码后图片。这个是大小不变情况下,图片质量变为原来80%;主要文件大小变小,是Webp格式带来的。下文我们介绍一下Java转码Webp格式。

  • 更优的图像数据压缩算法
  • 更小的图片体积
  • 肉眼识别无差异的图像质量
  • 无损和有损的压缩模式
  • Alpha 透明以及动画的特性
    简单地说,它可以像格式一样,保存无损画质,并保持图片透明特性;同时,可以像一样,压缩图片。在同等情况下,文件体积比小,甚至比还小。

因为Webp,实际上是Google开发的,所以Java IO流设计之初就不支持Webp格式。所以根据系统的不同,需要安装对应的依赖包:

因为并没有发布到Maven中央仓库,所以使用Maven骨架用户需要自己添加依赖
首先下载的jar发布包,下载地址:https://github.com/nintha/webp-imageio-core/releases
之后添加自定义:

比如:我的项目,添加本地:

这个时候,Java就已经支持处理格式图片了。

最简单的使用……其实是再加入上文所提到的依赖包,便可以使用直接处理图片IO流。
单独使用,我们可以用最传统的方法处理:
图片转WEBP:

感兴趣可以关注B站:Mintimate;
如果想进一步处理图片,需要基于系统工具包了:
比如:ImageMagick


  • 上一篇: java经典编程教程
  • 下一篇: java小系统教程
  • 版权声明


    相关文章:

  • java经典编程教程2024-11-20 11:42:04
  • java基础教程题库2024-11-20 11:42:04
  • java模块安装教程2024-11-20 11:42:04
  • java教程选兄弟连2024-11-20 11:42:04
  • java预告教程2024-11-20 11:42:04
  • java小系统教程2024-11-20 11:42:04
  • 珍珠炮教程java压缩2024-11-20 11:42:04
  • java教程第四版2024-11-20 11:42:04
  • java传递句柄教程2024-11-20 11:42:04
  • 韩顺平java视频教程2024-11-20 11:42:04