jmagick 在内存中生成图片

示例 :

 public class GetBigPic extends HttpServlet {
    Log log = LogFactory.getLog(GetBigPic.class);

    public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        String filepath = req.getParameter("filepath");
        PrintWriter out = res.getWriter();
        try {
            // 设置JMagick的ClassLoader,否则会报错
            System.out.print(System.getProperty("java.library.path"));
            System.setProperty("jmagick.systemclassloader", "no");
            String realPath = CommonUtils.picstoredir + filepath;
            log.debug(realPath);
            OutputStream toClient = res.getOutputStream();
            File f = new File(realPath);
            if (f.exists()) {
                ImageInfo info = new ImageInfo(realPath);
                MagickImage image = new MagickImage(info);
                MagickImage scaled = image.scaleImage(800, 600);//小图片文件的大小.
                // scaled.setFileName(picTo);
                scaled.setImageFormat("GIF");
                byte data[] = scaled.imageToBlob(new ImageInfo());

                // 通过Servlet输出
                res.setContentType("image/gif");

                toClient.write(data);
            } else {
                res.setContentType("text/html;charset=UTF-8");
                out.write("picture is not exists!");
                res.setContentType("image/gif");
            }
            toClient.close();
        } catch (Exception ex) {
            res.setContentType("text/html;charset=UTF-8");
            out.write("can not open picture!");
            out.close();
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值