java查询信息生成相关证书图片2

上一篇 java查询信息生成相关证书图片 方法中使用img无法显示图片 修改了一下

<dependency>
			<groupId>gui.ava</groupId>
			<artifactId>html2image</artifactId>
			<version>0.9</version>
		</dependency>
@RequestMapping(value = "/xxx", method = RequestMethod.GET)
    public void xxx(HttpServletRequest request, HttpServletResponse response) {
        // 将图像输出到Servlet输出流中。
        ServletOutputStream sos = null;
        try {
            PageData pd = this.getPageData();

            sos = response.getOutputStream();

            HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
            imageGenerator.setSize(new Dimension(800, 1127));
//            String url = new File("F:/test.html").toURI().toString();
            String path = request.getContextPath();
            String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
            imageGenerator.loadUrl(basePath+"f/sports-certificate?id="+pd.get("id"));
            Thread.sleep(1000);
            BufferedImage image = imageGenerator.getBufferedImage();
            Thread.sleep(1000);
            BufferedImage bufferedImageToWrite = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
            bufferedImageToWrite.createGraphics().drawImage(image, 0, 0, Color.WHITE, null);

            ImageIO.write(bufferedImageToWrite, "png", sos);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

页面中使用到了小程序码 使用官方生成的小程序码尺寸太大 修改了一下图片尺寸

 //创建项目后 生成小程序二维码图片
                final WxMaService wxService = getWxMaService();
                String filePath=request.getServletContext().getRealPath("/assets")+"/download/erweima";
                File file=wxService.getQrcodeService().createWxaCode("pages/project/project?projectId"+pd.get("id"),filePath);
                PageData erweima=new PageData();
                erweima.put("erweima","assets/download/erweima/"+file.getName());
                //修改图片分辨率
                InputStream is = new FileInputStream(new File(filePath+"/"+file.getName()));
                OutputStream os = new FileOutputStream(new File(filePath+"/100-"+file.getName()));
                ImgTest.resizeImage(is, os, 120, "png");
                erweima.put("erweima2","assets/download/erweima/100-"+file.getName());
                erweima.put("id",pd.get("id"));
                //更新保存二维码图片
                tProjectService.addAndUpdate(erweima);

ImgTest 网上找的方法


import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.imageio.ImageIO;
public class ImgTest {
    private Image img;
    private final static int WIDTH = 147;
    private final static int HEIGHT = 136;

    /**
     * 改变图片的大小到宽为size,然后高随着宽等比例变化
     * @param is 上传的图片的输入流
     * @param os 改变了图片的大小后,把图片的流输出到目标OutputStream
     * @param size 新图片的宽
     * @param format 新图片的格式
     * @throws IOException
     */
    public static OutputStream resizeImage(InputStream is, OutputStream os, int size, String format) throws IOException {
        BufferedImage prevImage = ImageIO.read(is);
        double width = prevImage.getWidth();
        double height = prevImage.getHeight();
        double percent = size/width;
        int newWidth = (int)(width * percent);
        int newHeight = (int)(height * percent);
        BufferedImage image = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_BGR);
        Graphics graphics = image.createGraphics();
        graphics.drawImage(prevImage, 0, 0, newWidth, newHeight, null);
        ImageIO.write(image, format, os);
        os.flush();
        is.close();
        os.close();
//        ByteArrayOutputStream b = (ByteArrayOutputStream) os;
        return os;
    }

    public static void main(String[] args) {
        try {
            InputStream is = new FileInputStream(new File("E:\\wlj\\ideaspace\\charity\\code\\charity_do\\src\\main\\webapp\\assets/download/erweima/3b9e6d2b-1d65-4456-8ba2-eb980ccf77b11060793005911564008.jpg"));
            OutputStream os = new FileOutputStream(new File("E:\\wlj\\ideaspace\\charity\\code\\charity_do\\src\\main\\webapp\\assets/download/erweima/3b9e6d2b-1d65-4456-8ba2-eb980ccf77b110607930059115640083.jpg"));
            resizeImage(is, os, 100, "png");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值