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();
        }
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java将图片分割为几个部分示例

    以下代码使用java将图片分割为几个部分,大家参考使用吧 复制代码 代码如下: public class SegmentationImage{ public static Icon Segmentation(String imagename,int Width,int Height,int height,int width) throws Exception{  // 准备分割图片 BufferedImage img1=ImageIO.read(new File(imagename));   

  • java实现图片分割指定大小

    本文实例为大家分享了java实现图片分割指定大小的具体代码,供大家参考,具体内容如下 1.使用工具:Thumbnails Thumbnails 是由谷歌提供的图片处理包,目前版本0.4.8. 可以简洁的实现图片的缩放.压缩.旋转.水印.格式转换等操作. 2.引入maven <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <v

  • asp.net 图片超过指定大小后等比例压缩图片的方法

    复制代码 代码如下: /// <summary>        /// 压缩图片        /// </summary>        /// <returns></returns>        public string ResizePic()        {            #region 压缩图片开始            bool IsImgFile = true;  //判断是否为图片文件            string file

  • 微信小程序上传图片并等比列压缩到指定大小的实例代码

    微信小程序官方API中 wx.chooseImage() 是可以进行图片压缩的,可惜的是不能压缩到指定大小. 实际开发中需求可能是压缩到指定大小: 原生js可以使用canvas来压缩,但由于微信小程序对canvas有封装,使得利用canvas来压缩图片有了一些区别: 代码放在了git:https://github.com/jonyellow/code-diary/tree/master/%E5%B0%8F%E7%A8%8B%E5%BA%8F/%E5%9B%BE%E7%89%87%E5%8E%8B

  • java 实现图片像素质量压缩与图片长宽缩放

    目录 java 图片像素质量压缩与图片长宽缩放 java 修改图片dpi(像素/大小) java 图片像素质量压缩与图片长宽缩放 今天找到的这个方法比以前项目用到的方法更好,这里记录下,方便日后使用! /** * 缩放图片(压缩图片质量,改变图片尺寸) * 若原图宽度小于新宽度,则宽度不变! * @param newWidth 新的宽度 * @param quality 图片质量参数 0.7f 相当于70%质量 * 2015年12月11日 */ public static void resize

  • Java实现图片旋转、指定图像大小和水平翻转

    本文实例为大家分享了Java实现图片旋转.指定图像大小.水平翻转,供大家参考,具体内容如下 package com.zeph.j2se.image; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; public class ImageOperate { /** * 旋转图片为指定角度 * * @param bufferedimage * 目标图像 *

  • Java实现上传文件图片到指定服务器目录

    具体代码如下所示: ***web.xml*** <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xm

  • Java Struts图片上传至指定文件夹并显示图片功能

    继上一次利用Servlet实现图片上传,这次利用基于MVC的Struts框架,封装了Servlet并简化了JSP页面跳转. JSP上传页面 上传一定要为form加上enctype="multipart/form-data",表示提交的数据时二进制的 并且必须是method="post" <%@ page language="java" contentType="text/html; charset=utf-8" page

  • PHP动态生成指定大小随机图片的方法

    本文实例讲述了PHP动态生成指定大小随机图片的方法.分享给大家供大家参考,具体如下: <?php $image_width = 100; $image_height = 100; $image_str = ''; if (isset($_GET['w'])) { $image_width = intval($_GET['w']); } if (isset($_GET['h'])) { $image_height = intval($_GET['h']); } if (isset($_GET['s

  • Java Servlet上传图片到指定文件夹并显示图片

    在学习Servlet过程中,针对图片上传做了一个Demo,实现的功能是:在a页面上传图片,点击提交后,将图片保存到服务器指定路径(D:/image):跳转到b页面,b页面读取展示绝对路径(D:/image)的图片.主要步骤如下: 步骤一:上传页面uploadphoto.jsp 需要注意两个问题: 1.form 的method必须是post的,get不能上传文件, 还需要加上enctype="multipart/form-data" 表示提交的数据是二进制文件. 2.需要提供type=&

随机推荐