package com.example.demo.com;
import org.apache.commons.io.FileUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.summercool.image.JImage;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@RestController
public class img {
private static final int BUFFER_SIZE = 8192;
@RequestMapping(value = "/uploadImg", method = RequestMethod.POST, produces = "text/html;charset=UTF-8")
public String upload(@RequestParam(value = "file", required = true) MultipartFile file) {
System.out.println(file.getContentType());
System.out.println(file.getName());
System.out.println(file.getOriginalFilename());
getImg(file);
getImg1(file);
return "hello";
}
private void getImg(@RequestParam(value = "file", required = true) MultipartFile file) {
try {
BufferedImage image = ImageIO.read(file.getInputStream());
System.out.println(image);
if (image != null) {
System.out.println(image.getWidth());
System.out.println(image.getHeight());
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void getImg1(@RequestParam(value = "file", required = true) MultipartFile file) {
String fileName = file.getOriginalFilename();
try {
String prefix=fileName.substring(fileName.lastIndexOf("."));
File temporaryFile = File.createTempFile(prefix,String.valueOf(System.currentTimeMillis()));
FileUtils.copyInputStreamToFile(file.getInputStream(), temporaryFile);
BufferedImage m = ImageIO.read(temporaryFile);
if (m != null) {
System.out.println(m.getWidth());
System.out.println(m.getHeight());
}
} catch (Exception e) {
// 省略异常操作
}
}
private void getImg2(@RequestParam(value = "file", required = true) MultipartFile file) {
try {
InputStream inputStream = file.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] bytes = copy(inputStream, out);
JImage jImage = JImageUtils.make(bytes, JImageFormat.AUTO, 0, 0, 0);
if (jImage != null) {
jImage.getWidth();
jImage.getHeight();
}
}catch (Exception e){
}
}
private byte[] copy(InputStream source, ByteArrayOutputStream out)
throws IOException {
byte[] buf = new byte[BUFFER_SIZE];
int n;
while ((n = source.read(buf)) > 0) {
out.write(buf, 0, n);
}
return out.toByteArray();
}
}