如果是肉眼都不能分辨的,那就可以压缩,
需 求
老师讲的课程里有相关代码?
@Service public class ThumbnailService { public static final int WIDTH = 100; public static final int HEIGHT = 100; //使用类库 public String thumbnail(MultipartFile file,String uploadPath, String realUploadPath){ String imgName = "thum_"+file.getOriginalFilename(); String des = realUploadPath+"/"+imgName; try { Thumbnails.of(file.getInputStream()).size(WIDTH,HEIGHT).toFile(des); }catch (Exception e){ e.printStackTrace(); } return uploadPath+"/"+imgName; } //使用java awt public String awt(MultipartFile file,String uploadPath, String realUploadPath){ OutputStream os = null; String imgName = "thum_"+file.getOriginalFilename(); String des = realUploadPath+"/"+imgName; try { os = new FileOutputStream(des); Image image = ImageIO.read(file.getInputStream()); int width = image.getWidth(null);//原图宽 int height = image.getHeight(null);//原图高 int rate1 = width/WIDTH;//缩略图宽比例 int rate2 = height/HEIGHT;//缩略图高比例 int rate = 0; if(rate1 > rate2){//宽度缩略比例大于高度缩略比例,使用宽度缩略比例 rate = rate1; }else { rate = rate2; } //计算缩略图最终的宽度和高度 int newWidth = width/rate; int newHeight = height/rate; BufferedImage bufferedImage = new BufferedImage(newWidth,newHeight,BufferedImage.TYPE_INT_RGB); bufferedImage.getGraphics().drawImage(image.getScaledInstance(newWidth,newHeight,image.SCALE_SMOOTH),0,0,null); String imageType = file.getContentType().substring(file.getContentType().indexOf("/")+1); ImageIO.write(bufferedImage,imageType,os); }catch (Exception e){ e.printStackTrace(); }finally { if(os!=null){ try { os.close(); }catch (Exception e){ e.printStackTrace(); } } } return uploadPath+"/"+imgName; } }
就是spring的默认配置文件applicationContext.xml
没有,老师没上传,
链接: https://pan.baidu.com/s/1hsFyAna 密码: 5jhe 这是我自己写的,你可以参考看一下,应该是你的img路径写的有问题
可以把该课程的项目包上传上来吗?
怎么改呀
按照老师的敲一便就好,那个包应该能找到。
我觉得可以这样理解:buffer相当于一个杯子,read方法是往这个杯子中注水,而write方法是从这个杯子中取水,杯子就是一个工具,具体还要看方法是怎么用它
在控制器里面有变量设置,指定缩略图生成保存文件夹。
需要在web目录中创建对应的目录。
简单的想睡觉
源码http://yun.baidu.com/share/link?shareid=2160247&uk=1714041258