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(); } }
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot中驗證用戶上傳的圖片資源的方法
- 詳解java google Thumbnails 圖片處理
- Java數字圖像處理之圖像灰度處理
- java實現圖片反色處理示例
- Java實戰之實現文件資料上傳並生成縮略圖