记一次在文档中插入图片走过的弯路

11 篇文章 0 订阅

    今天,项目中有这样一个需求,在文档中插入从数据库中获取的图片。

    获取图片的功能之前就已经实现,现在有一个问题,在读取插入的时候处理成固定大小的图片格式,现在如果传入大像素的图片,就会看的很模糊,清晰度降低,现在就想实现那种等比例缩放的效果,至少在图片宽度大于文档固定宽度的时候要满屏铺开。就像在文档中插入一张图,自动缩放等比例的尺寸。

    要想解决这个问题,起码要知道以下几点:

    1.获取文档默认的宽度尺寸(不考虑高度);

    2.获取图片的宽和高

    解决方案:

    1.设置固定宽度,这个百度上有,设置为595像素;处理图片的加载,如果图片的宽度大于595,那就进行等比例的缩放,高度*595/宽度为新的高度,如果小于或等于就按原图大小处理。

    如何获取图片的宽和高呢?

    使用FileInputStream进行获取图片文件对象,然后再用BufferedImage进行对象获取。

    

File picture = new File(photo);
FileInputStream is = new FileInputStream(picture);
BufferedImage sourceImg =ImageIO.read(picture);

   如图所示 ,这里走了很多弯路,之前,直接获取

 
BufferedImage sourceImg =ImageIO.read(is);
    这样导致图片无法加载出来,原因不详,我猜测可能对File的处理有差异,可以看源码。改了这个地方,效果就出来了。耗时一天的功能点这样解决了。记录下来,供各位博友参考。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值