请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

2回答

翔仔 2020-02-29 02:09:46

同学好,援军抵达,问题应该是generateThumbnail方法的

			Thumbnails.of(thumbnail.getImage()).size(200, 200)
					.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File(basePath + "/watermark.jpg")), 0.25f)
					.outputQuality(0.8f).toFile(dest);

里面的ImageIO.read(new File(basePath + "/watermark.jpg") 这句话

需要把basePath+ "/watermark.jpg" 替换成绝对值路径 也就是 D:/aaa/bbb/watermark.jpg这样子、前提是你的watermark.jpg确实在D:/aaa/bbb/下,由于不同同学的环境不同,导致basePath可能获取到的值不正确,所以后续我们也会改成绝对值路径

1 回复 有任何疑惑可以回复我~
  • 提问者 大尾鲈鳗100 #1
    public static String getShopImagePath(long shopId) {
    		String imagePath = "upload/images/item/shop/" + shopId + "/";
    		return imagePath.replace("/", seperator);
    	}
    basePath+ "/watermark.jpg"改成绝对路径就可以了   还有一个错误的原因就是我把getShopImagePath(long shopId)中的 "upload/images/item/shop/"错弄成了绝对地址所以才出现我图片两个E:/的问题。感谢老师的回答
    回复 有任何疑惑可以回复我~ 2020-02-29 14:05:22
qq_蓝骏毅_04076633 2020-03-08 00:13:04

你这个问题怎么解决的

0 回复 有任何疑惑可以回复我~
  • 提问者 大尾鲈鳗100 #1
    就是老师说的  里面的ImageIO.read(new File(basePath + "/watermark.jpg") 这句话需要把basePath+ "/watermark.jpg" 替换成绝对值路径
    回复 有任何疑惑可以回复我~ 2020-03-08 17:28:32
  • public static String generateThumbnail(File thumbnail, String targetAddr) {
    		// 获取不重复的随机名
    		String realFileName = getRandomFileName();
    		
    		// 获取文件的扩展名如png,jpg等
    		String extension = getFileExtension(thumbnail);
    		
    		// 如果目标路径不存在,则自动创建
    		makeDirPath(targetAddr);
    		
    		// 获取文件存储的相对路径(带文件名)
    		String relativeAddr = targetAddr + realFileName + extension;
    		logger.debug("current relativeAddr is :" + relativeAddr);
    		
    		// 获取文件要保存到的目标路径
    		File dest = new File(PathUtil.getImgBasePath() + relativeAddr);
    		logger.debug("current complete addr is :" + PathUtil.getImgBasePath() + relativeAddr);
    		
    		// 调用Thumbnails生成带有水印的图片
    		try {
    			Thumbnails.of(thumbnail).size(200, 200)
    			.watermark(Positions.BOTTOM_RIGHT, 
    					ImageIO.read(new File(basePath + "/watermark.jpg")), 0.25f)
    			.outputQuality(0.8f)
    			.toFile(dest);
    		}catch (IOException e) {
    			logger.error(e.toString());
    			e.printStackTrace();
    		}
    		
    		return relativeAddr;
    		
    	}
    回复 有任何疑惑可以回复我~ 2020-03-08 17:30:47
  • 你发下截图
    回复 有任何疑惑可以回复我~ 2020-03-08 17:46:19
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信