从零搭建自己的SpringBoot后台框架(二十二)

现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高清图片,分辨率也很高,当然占用的存储空间也就大了。问题也就产生了,你每个用户都上传个3M的图片怎么办?

用户如果加载你的网页加载个半天,就是因为图片太大导致的那就不是钱能解决的问题了。

因为用户的网络环境你是不可控制的。所以本章我们添加图片压缩,添加水印,格式转换等功能。

一:添加thumbnailator依赖

dependency

groupIdnet.coobird/groupId

artifactIdthumbnailator/artifactId

version./version

/dependency

二:创建图片处理类

创建core→utils→ImageUtils.java

package com.example.demo.core.utils

net.coobird.thumbnailator.Thumbnails

net.coobird.thumbnailator.geometry.Positions

net.coobird.thumbnailator.name.Rename

net.coobird.thumbnailator.resizers.configurations.ScalingMode

org.slf4j.Logger

org.slf4j.LoggerFactory

javax.imageio.ImageIO

java.io.File

java.io.FileOutputStream

java.io.IOException

java.io.OutputStream

/**

* 图片处理工具类,主要压缩,添加logo等

* @author phubing

*/

public class ImageUtils

public static Logger logger LoggerFactory.getLoggerImageUtils.class

public static void mainString args

//使用给定的图片生成指定大小的图片

//generateFixedSizeImage

//对原图加水印,然后顺时针旋转90度,最后压缩为80%保存

//generateRotationWatermark

//转换图片格式,将流写入到输出流

//generateOutputstream

//按比例缩放图片

//generateScale

//生成缩略图到指定的目录

//generateThumbnail2Directory

//将指定目录下所有图片生成缩略图

//generateDirectoryThumbnail

/**

* 使用给定的图片生成指定大小的图片

*/

public static void

try

Thumbnails.of.size.toFile

catch IOException e

logger.errore.getMessage

/**

* 对原图加水印,然后顺时针旋转90度,最后压缩为80%保存

*/

public static void

try

Thumbnails.of.

// 缩放大小

size.

// 顺时针旋转90度

rotate.

//水印位于右下角,半透明

watermarkPositions.BOTTOM_RIGHT, ImageIO.readnew File,1f.

// 图片压缩80%质量

outputQuality.

toFile

catch IOException e

logger.errore.getMessage

/**

* 转换图片格式,将流写入到输出流

*/

public static void

tryOutputStream outputStream new FileOutputStream

Thumbnails.of.

size.

// 转换格式

outputFormat.

// 写入输出流

toOutputStreamoutputStream

catch IOException e

logger.errore.getMessage

/**

* 按比例缩放图片

*/

public static void

try

Thumbnails.of.

scalingMode

ScalingMode.BICUBIC.

// 图片缩放80%, 不能和size一起使用

scale.

// 图片质量压缩80%

outputQuality.

toFile

catch IOException e

logger.errore.getMessage

/**

* 生成缩略图到指定的目录

*/

public static void

try

Thumbnails.of,.

// 图片缩放80%, 不能和size一起使用

scale.

//指定的目录一定要存在,否则报错

toFilesnew File, Rename.NO_CHANGE

catch IOException e

logger.errore.getMessage

/**

* 将指定目录下所有图片生成缩略图

*/

public static void

try

Thumbnails.of

new File.listFiles.

scale.

toFilesnew File, Rename.SUFFIX_HYPHEN_THUMBNAIL

catch IOException e

logger.errore.getMessage

三:基本使用方法介绍

Thumbnails.of

//生成图片大小

.size

//缩放比例 -1之间

.scale1f

//图片质量 -1之间 最好

.outputQuality.5f

//顺时针旋转度数

.rotate

//水印 第一个参数:水印位置 第二个:水印所在路径 第三个:水印透明度

.watermarkPositions.BOTTOM_RIGHT, ImageIO.readnew File,1f.

.toFile

四:文档地址

具体示例大家可自行查看

帮助文档

以上是 从零搭建自己的SpringBoot后台框架(二十二) 的全部内容, 来源链接: www.h5w3.com/php/706379.html

回到顶部