java实现图片分割指定大小
作者:litGrey 发布时间:2021-07-02 16:56:34
标签:java,图片分割
本文实例为大家分享了java实现图片分割指定大小的具体代码,供大家参考,具体内容如下
1.使用工具:Thumbnails
Thumbnails 是由谷歌提供的图片处理包,目前版本0.4.8。
可以简洁的实现图片的缩放、压缩、旋转、水印、格式转换等操作。
2.引入maven
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
//最新版本可自查
3.工具类
import org.springframework.web.multipart.MultipartFile;
import net.coobird.thumbnailator.Thumbnails;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
/**
* @Auther: lch
* @Date: 2019/3/11 09:58
* @Description: 图片工具类
*/
public class ImgUtils {
public static byte[] uploadImg(Integer height,Integer width,MultipartFile file) throws Exception{
String fileSuffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
BufferedImage bufferedImageBig = Thumbnails.of(file.getInputStream())
.forceSize(height, width).asBufferedImage();
//大图字节转换
ByteArrayOutputStream outBig = new ByteArrayOutputStream();
try {
ImageIO.write(bufferedImageBig, fileSuffix, outBig);
} catch (IOException e) {
e.printStackTrace();
}
return outBig.toByteArray();
}
}
4.切割图片返回字节数组
/**
* 接收文件
*
*
* @param model
* @return
* @throws IOException
* @throws IllegalStateException
*/
@RequestMapping(value = "imageupload")
public void imageUpload(MultipartFile file) throws IllegalStateException, IOException {
//文件名称
String realFileName = file.getOriginalFilename();
//文件后缀
String suffix = realFileName.substring(realFileName.lastIndexOf(".") + 1);
/***************文件处理*********************/
try {
//大图图片切割 --宽高 720 - 720
byte[] bytesBig = ImgUtils.uploadImg(720, 720, file);
//中图图片切割 --宽高 200 - 200
byte[] bytesMiddle = ImgUtils.uploadImg(200, 200, file);
//小图图片切割 --宽高 50- 50
byte[] bytesSmall = ImgUtils.uploadImg(50, 50, file);
/************以上三种byte数组,即为切割后的文件******************/
} catch (Exception e) {
System.out.println("错误");
}
}
小编再为大家补充一段相关代码:java图片切割圆形
@Test
public void test() {
try {
// 读取图片
BufferedImage bi1 = ImageIO.read(new File("g:/free-sheet-share.jpg"));
BufferedImage bi2 = new BufferedImage(bi1.getWidth(), bi1.getHeight(),
BufferedImage.TYPE_INT_RGB);
Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, bi1.getWidth(), bi1
.getHeight());
Graphics2D g2 = bi2.createGraphics();
g2.setBackground(Color.WHITE);
g2.fill(new Rectangle(bi2.getWidth(), bi2.getHeight()));
g2.setClip(shape);
//设置抗锯齿
g2.drawImage(bi1, 0, 0, null);
g2.dispose();
ImageIO.write(bi2, "jpg", new File("e:/2.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
来源:https://blog.csdn.net/luChenH/article/details/89556258
0
投稿
猜你喜欢
- 在spring中有很多以XXXAware命名的接口,很多人也不清楚这些接口都是做什么用的,这篇文章将描述常用的一些接口。一,Applicat
- MyBatis-plus模糊查询在使用MyBatis-plus的时候,一些基础的增删改查可以不用再自己写sql了:public interf
- 本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理
- 1.向上转型 向下转型2.强制类型转换的应用应用多态性时由于引用为父类类型,导致编译时只能调用父类中声明的属性和方法。子类特有的属性和方法不
- 近期,Apache SkyWalking 修复了一个隐藏了近4年的Bug - TTL timer 可能失效问题,这个 bug 在 SkyWa
- 本文实例讲述了Java实现的求解经典罗马数字和阿拉伯数字相互转换问题。分享给大家供大家参考,具体如下:古罗马帝国开创了辉煌的人类文明,但他们
- 当异常被抛出,通常方法的执行将作一个陡峭的非线性的转向。依赖于方法是怎样编码的,异常甚至可以导致方法过早返回。这在一些方法中是一个问题。例如
- Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,
- Java中代码的加载顺序所能了解的知识点类的依赖关系static代码块的加载时间继承类中构造器的隐式调用非static的成员变量初始化时间m
- SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-
- spring cloud gateway获取请求的真实地址在使用spring cloud gateway的时候,路由一般配置为服务名例如 l
- 图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这里我用的是request.getInputStream()获取文件流的方式。
- 在以往的 Tomcat 项目中,一直习惯用 Ant 打包,使用 build.xml 配置,通过 ant -buildfile 的方式在机器上
- 本文实例为大家分享了java制作简单验证码的具体代码,供大家参考,具体内容如下在这里我们需要用到java的画笔工具,所以我们需要导入以下包i
- 使用zxing批量在做好的立牌背景图的指定位置上,把指定的文本内容(链接地址、文本等)生成二维码并放在该位置,最后加上立牌编号。步骤:1).
- 目标效果: 点击动画按钮之后每张牌各自旋转 散开到屏幕上半部分的任意位置之后回到初始位置 比较像LOL男刀的技能动画 : )1: 创建卡牌对
- 在 Java 语言中的类初始化块 文章中我们简单的介绍了下 Java 中的实例初始化块 ( IIB )。不过我觉得介绍的有点简单了,于是,再
- 限流背景在早期的计算机领域,限流技术(time limiting)被用做控制网络接口收发通信数据的速率。可以用来优化性能,减少延迟和提高带宽
- 在客户机和服务器之间建立单一的双向连接,这就意味着客户只需要发送一个请求到服务端,那么服务端则会进行处理,处理好后则将其返回给客户端,客户端
- JavaWeb项目部署到服务器详细步骤本地准备在eclipse中将项目打成war文件:鼠标右键要部署到服务器上的项目导出项目数据库文件MyS