poi下载excel中图片比例问题三个比例放图片

9 篇文章 0 订阅

图片比例好麻烦,按照图片比例
高大于宽的
高宽一致的
高小于宽的
三个比例
不是特别丑还是挺丑的其实,嗨,凑合下记录一个思路

sheet.setColumnWidth(i,30256);列宽
nrow.setHeight((short) (30
256));行高
URL url = new URL(imgUrl+ “!wm”);
BufferedImage read = ImageIO.read(url);

					int width = read.getWidth();
                    int height = read.getHeight();
                    Integer gcd = gcd(height, width);
                    Integer heightRatio = height / gcd;
                    Integer widthRatio= width / gcd;
                    int a=10000*10,b=10000*10,c=-10000*10,d=-10000*10;
                    
                    if(heightRatio > widthRatio){
                        a = 10000*15;
                        b = 10000*10+(10000*60);
                        c = -10000*15;
                        d = -10000*10-(10000*60);
                    }else if (heightRatio == widthRatio){
                        a = 10000*15;
                        b = 10000*10+(10000*120);
                        c = -10000*15;
                        d = -10000*10-(10000*120);
                    }else if(heightRatio < widthRatio){
                        a = 10000*15;
                        b = 10000*10+(10000*180);
                        c = -10000*15;
                        d = -10000*10-(10000*180);
                    }
                    //下载图片

// ByteArrayOutputStream output = downloadImg(imgUrl+"!wm");
ByteArrayOutputStream output = new ByteArrayOutputStream();
ImageIO.write( read, “jpg”, output );
//imgUrlIndex图片位置 图片搜索在行数rowNum
XSSFClientAnchor anchor = new XSSFClientAnchor(a, b, c, d,
(short) imgUrlIndex, rowNum, (short) imgUrlIndex+1, rowNum+1);
XSSFDrawing patriarch = sheet.createDrawingPatriarch();
// 插入图片
patriarch.createPicture(anchor, wb.addPicture(output.toByteArray(), XSSFWorkbook.PICTURE_TYPE_JPEG));

------------------------------------------------最大公约数算出图片比例--------------------------------------------------
private Integer gcd(int height , int width) {
if(width ==0 ){
return height;
}else{
return gcd(width, height % width);
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值