博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java代码生成图片_高分求java代码,用来生成图片文件!!
阅读量:6999 次
发布时间:2019-06-27

本文共 2849 字,大约阅读时间需要 9 分钟。

展开全部

//defaultSuffix是jpg

public static final boolean resizeImage(String fileName, String suffix) throws Exception {

boolean uploaded = false;

BufferedImage input;

if(suffix.equalsIgnoreCase("tif")||suffix.equalsIgnoreCase("tiff")||suffix.equalsIgnoreCase("png")) {

RenderedImage image = JAI.create("fileload", TurbineServlet.getRealPath(imageRoot + fileName+"."+suffix));

WritableRaster raster = image.copyData(null);

BufferedImage bi = new BufferedImage( image.getColorModel(), raster, true, null);

BufferedImage bi2 = new BufferedImage( maxResizeDimension, bi.getHeight()*maxResizeDimension/bi.getWidth(), BufferedImage.TYPE_INT_RGB);

Graphics2D g2 = bi2.createGraphics();

g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

g2.setBackground(java.awt.Color.WHITE);//把tiff和png转换后的32313133353236313431303231363533e4b893e5b19e31333236363563背景设置为白色

g2.fillRect(0, 0, maxResizeDimension, bi.getHeight()*maxResizeDimension/bi.getWidth());

g2.drawImage(bi, 0, 0, maxResizeDimension, bi.getHeight()*maxResizeDimension/bi.getWidth(), null);

PlanarImage pi = PlanarImage.wrapRenderedImage(bi2);

JAI.create("FileStore", pi, TurbineServlet.getRealPath(resizeRoot + fileName+"."+defaultSuffix).replaceAll("\\\\","\\\\\\\\"), "JPEG", new JPEGEncodeParam());

input = pi.getAsBufferedImage();

int w = maxThumbDimension, h = maxThumbDimension;

BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);

Graphics2D g = output.createGraphics();

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

g.drawImage(input,0,0,w,h, null);

ImageIO.write(output, defaultSuffix, new File(TurbineServlet.getRealPath(thumbRoot + fileName+"."+defaultSuffix)));

}

else {

input = ImageIO.read(new File(TurbineServlet.getRealPath(imageRoot + fileName+"."+suffix)));

int w = maxThumbDimension, h = maxThumbDimension;

BufferedImage output = new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);

Graphics2D g = output.createGraphics();

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

g.drawImage(input,0,0,w,h, null);

ImageIO.write(output, defaultSuffix, new File(TurbineServlet.getRealPath(thumbRoot + fileName+"."+defaultSuffix)));

BufferedImage output2 = new BufferedImage(maxResizeDimension, input.getHeight()*maxResizeDimension/input.getWidth(), BufferedImage.TYPE_3BYTE_BGR);

Graphics2D g2 = output2.createGraphics();

g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

g2.drawImage(input,0,0,maxResizeDimension, input.getHeight()*maxResizeDimension/input.getWidth(), null);

ImageIO.write(output2, defaultSuffix, new File(TurbineServlet.getRealPath(resizeRoot + fileName+"."+defaultSuffix)));

}

uploaded = true;

return uploaded;

}

本回答由网友推荐

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

转载地址:http://sbevl.baihongyu.com/

你可能感兴趣的文章
使用机器学习预测天气(第二部分)
查看>>
解决使用jwt刷新token带来的问题
查看>>
浅谈分布式存储系统Pangu2.0——它让双11运维变得智能起来
查看>>
通过Apache Flume向HDFS存储数据
查看>>
像盖房子一样写代码:当我以测试驱动开发的时候,我在想些什么
查看>>
html5使用Drag事件编辑器拖拽上传图片
查看>>
FPB 2.0:免费的计算机编程类中文书籍 2.0
查看>>
Ueditor上传本地音频MP3
查看>>
Egg.js开发七牛云备份项目总结
查看>>
npm下取消已发布的版本package
查看>>
Promise是Monad吗?
查看>>
(转)Mongoose学习参考文档
查看>>
将多个文件压缩成zip文件进行下载
查看>>
iOS项目集成react native就这几步
查看>>
H5实例教学--3D全景(ThreeJs全景Demo)
查看>>
php 扩展安装(随笔)
查看>>
Tech UP——EGO北京分会成立啦
查看>>
如何找到Kafka集群的吞吐量极限?\n
查看>>
52 个有用的机器学习与预测接口盘点
查看>>
恶意软件盯上了加密货币,两家以色列公司受到攻击
查看>>