激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java實(shí)現(xiàn)圖片分割指定大小

java實(shí)現(xiàn)圖片分割指定大小

2021-12-14 13:16litGrey Java教程

這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)圖片分割指定大小,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)圖片分割指定大小的具體代碼,供大家參考,具體內(nèi)容如下

1.使用工具:Thumbnails

Thumbnails 是由谷歌提供的圖片處理包,目前版本0.4.8。

可以簡潔的實(shí)現(xiàn)圖片的縮放、壓縮、旋轉(zhuǎn)、水印、格式轉(zhuǎn)換等操作。

2.引入maven

?
1
2
3
4
5
6
<dependency>
      <groupId>net.coobird</groupId>
      <artifactId>thumbnailator</artifactId>
      <version>0.4.8</version>
</dependency>
//最新版本可自查

3.工具類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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();
        //大圖字節(jié)轉(zhuǎn)換
        ByteArrayOutputStream outBig = new ByteArrayOutputStream();
 
        try {
            ImageIO.write(bufferedImageBig, fileSuffix, outBig);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return outBig.toByteArray();
    }
 
}

4.切割圖片返回字節(jié)數(shù)組

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 接收文件
*
*
* @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數(shù)組,即為切割后的文件******************/
        
     } catch (Exception e) {
           System.out.println("錯(cuò)誤");          
     }
                
                   
    }

小編再為大家補(bǔ)充一段相關(guān)代碼:java圖片切割圓形

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@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);
            //設(shè)置抗鋸齒
            g2.drawImage(bi1, 0, 0, null);
            g2.dispose();
            ImageIO.write(bi2, "jpg", new File("e:/2.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/luChenH/article/details/89556258

延伸 · 閱讀

精彩推薦
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程xml與Java對象的轉(zhuǎn)換詳解

    xml與Java對象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經(jīng)有好久沒有升過級了。升級完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對java開發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
主站蜘蛛池模板: 99爱视频在线 | 久久精品亚洲一区二区 | 色综合一区二区 | 欧美日本另类 | 日本精品久久久久 | 色成人在线 | 在线看免费观看日本 | 欧美成人鲁丝片在线观看 | 一级电影免费在线观看 | 国产成人av免费看 | 高清中文字幕在线 | 亚洲视屏 | 成品片a免费直接观看 | 国产午夜亚洲精品 | 久久精品视频12 | 久久久久久久久日本理论电影 | 国产91久久久 | 欧美一级电影网站 | 91精品国产乱码久 | 免费毛片免费看 | 国产三级a三级三级 | 国产精品久久久久久久久久尿 | 国产一级免费在线视频 | 一级大片在线观看 | 欧美精品黄色 | 一级大黄毛片免费观看 | 亚洲国产精品一区二区久久 | 国产一区二区精品在线观看 | 成人黄色短视频在线观看 | 一级啪啪片 | 久久久aa| 国产精品三级a三级三级午夜 | 香蕉久草在线 | 亚州成人在线观看 | 成人在线观看地址 | 好吊色37pao在线观看 | av在线免费电影 | 国产毛片视频 | 青青草华人在线 | 桥本有菜免费av一区二区三区 | 妇女毛片 |