SpringMVC先将图片进行合成然后下载
2015-09-06 10:50
453 查看
<pre name="code" class="java"> /** * 将图片进行合成 * @param bigPath 主图图片路径 * @param smallPath 商品图片路径 * @param erweimaPath 二维码图片路径 */ @RequestMapping("download.do") public void overlapImage(HttpServletResponse response,String bigPath, String erWeiMaPath,String smallPath,Country country,SellerItemModel sim,SellerWarehouse sellerWarehouse) { try { BufferedImage big = ImageIO.read(new File(bigPath)); URL url=new URL(erWeiMaPath); BufferedImage erweima = ImageIO.read(url.openStream()); URL url1=new URL(smallPath); BufferedImage small = ImageIO.read(url1.openStream()); //通图片的路径去读取图片 // BufferedImage small= ImageIO.read(new File(smallPath)); int width=2015; int height=1136; Image image=big.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage bufferedImage2=new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Graphics2D g = bufferedImage2.createGraphics(); int x = 707; int y = 268; int x1 = 684; int y1 = 245; g.drawImage(image, 0, 0,null); g.drawImage(small, x+320, y-5, 800, 600, null); g.drawImage(erweima, x1-575, y1+100, 596, 596, null); Font font=new Font("宋体",Font.PLAIN , 25); g.setFont(font); g.setPaint(Color.DARK_GRAY); int numWidth =x+320; int numHright=y+650; int num=0; g.drawString("商品名称:"+sim.getName(), numWidth,numHright); num += 50; g.setPaint(Color.DARK_GRAY); Font font1=new Font("宋体",Font.BOLD , 25); g.setFont(font1); g.drawString("售价:"+new java.text.DecimalFormat("#.00").format(sim.getMarketPrice())+"RMB", numWidth,numHright+num); num += 50; Font font2=new Font("宋体",Font.PLAIN , 25); g.setFont(font2); g.setPaint(Color.DARK_GRAY); g.drawString("原产地:"+country.getZhName(),numWidth, numHright+num); num += 50; g.drawString("配送方式:"+sellerWarehouse.getName(),numWidth, numHright+num); g.dispose(); response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); response.setHeader("Content-disposition", "attachment; filename=" + new String((sim.getName()+".jpg").getBytes("utf-8"), "ISO8859-1")); ImageIO.write(bufferedImage2, "jpg", response.getOutputStream()); } catch (Exception e) { e.printStackTrace(); } }
相关文章推荐
- Spring AOP Example – Advice
- java 编译 解释执行 基于栈和基于寄存器
- 重新学习JAVA
- 【原】个人java项目经验总结
- Spring依赖注入(DI)
- 当在myeclipse里发送邮件有错误时,不妨把环境都改成jdk的
- Thinking in java 之:静态数据的初始化及初始化顺序
- Eclipse+maven+spring
- Spring常见面试题
- 初入IT行业续
- mac下Myeclipse2015编写的第一个hibernate程序myHibernateUser及源码
- Java格式化时间SimpleDateFormat
- spring如何获取request response session
- Thinking in java 之:可变参数列表
- Java性能优化(10):谨慎改写clone
- Java父类、子类、静态成员和普通成员初始化的顺序
- java怎么解决书写啰嗦问题的
- Java I/O解读与使用实例
- Eclipse修改编码格式及字体大小
- 用Eclipse搭建Android开发环境并创建第一个Android项目(eclipse+android sdk)