开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1166|回复: 4
收起左侧

[android源码] Java绘制图片生成图片文件进行预览

[复制链接]

结帖率:76% (32/42)
发表于 2017-2-26 09:15:14 | 显示全部楼层 |阅读模式   山东省*
Java绘制图片并实现打印前生成图片文件进行预览, 适用于开发阶段. 如果要使用界面完成预览,请另找资源.
这里用这个功能主要是用于结果预览,因为如果使用打印来进行结果验证,会浪费大量的纸张.

Java代码:
  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.Font;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.Image;
  7. import java.awt.Rectangle;
  8. import java.awt.geom.AffineTransform;
  9. import java.awt.image.BufferedImage;
  10. import java.awt.print.PageFormat;
  11. import java.awt.print.Printable;
  12. import java.awt.print.PrinterException;
  13. import java.awt.print.PrinterJob;
  14. import java.io.BufferedOutputStream;
  15. import java.io.File;
  16. import java.io.FileOutputStream;
  17. import java.io.IOException;
  18. import java.util.Date;

  19. import javax.imageio.ImageIO;

  20. import com.sun.image.codec.jpeg.JPEGCodec;
  21. import com.sun.image.codec.jpeg.JPEGEncodeParam;
  22. import com.sun.image.codec.jpeg.JPEGImageEncoder;
  23. import com.synnex.reception.util.PLBarCode39;
  24. import com.synnex.reception.vo.VisitInfoVo;

  25. public class PrintTest {

  26.     public static void main(String[] args) {
  27.         String barCode = "201702260001" ;
  28.         String dateStr = "2017/02/26 08:59:59";
  29.         String name = "Christopher Adam Hernandez Sotelo";
  30.         String visitorCompany = "CHINA Chengdu";
  31.         String employeeName = "Marquisha Ardell Eddington-Williams";
  32.         
  33.         int zoom = 6;
  34.         BufferedImage resultImage = null;
  35.         BufferedImage bufferedImage = new BufferedImage(216*zoom,144*zoom,BufferedImage.TYPE_INT_RGB);
  36.         Graphics g = bufferedImage.getGraphics();
  37. //        g.draw3DRect(0, 0, 216, 144, true);
  38.         g.setColor(Color.WHITE);
  39.         g.fillRect(0, 0, 216*zoom, 144*zoom);
  40.         g.setColor(Color.BLACK);
  41.         
  42.         Image image;
  43.         try {
  44.             image = ImageIO.read(PrintTest.class.getClassLoader().getResource("logo.bmp").openStream());
  45.             if (image != null) {
  46.                 g.drawImage(image, 6*zoom, 6*zoom, 60*zoom, 24*zoom, null);
  47.             }
  48.             g.setFont(new Font("Arial", Font.BOLD, 14*zoom));
  49.             g.drawString("VISITOR",100*zoom, 24*zoom);
  50.             
  51.             g.setFont(new Font("Arial", Font.BOLD, 10*zoom));
  52.             g.drawString("Name:",61*zoom, 42*zoom);
  53.             g.drawString("Entry Time:", 37*zoom,63*zoom);
  54.             g.drawString("Company Name:", 12*zoom,80*zoom);
  55.             g.drawString("Employee Name:", 10*zoom,97*zoom);
  56.             
  57.             g.setFont(new Font("Arial", Font.PLAIN, 8*zoom));
  58.             
  59.             g.drawString(name,92*zoom, 42*zoom);
  60.             g.drawString(dateStr, 92*zoom,63*zoom);
  61.             g.drawString(visitorCompany, 92*zoom,80*zoom);
  62.             g.drawString(employeeName, 92*zoom,97*zoom);
  63.             
  64.             g.drawImage(generateBarcodeImage(barCode), 40*zoom, 112*zoom, 152*zoom, 30*zoom, null);
  65.             g.dispose();
  66.             
  67.             resultImage = bufferedImage;//rotate(bufferedImage, 360);
  68.             // encode: com.sun.image.codec.jpeg
  69.             BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File("C:\\test.jpg")));
  70.             JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  71.             JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(resultImage);
  72.             param.setQuality(1.0f, false);
  73.             encoder.setJPEGEncodeParam(param);
  74.             try {
  75.                 encoder.encode(resultImage);
  76.             }catch(IOException ioe) {
  77.                 ioe.printStackTrace();
  78.             }

  79.         }catch(Exception e){
  80.             e.printStackTrace();
  81.         }
  82.         
  83.         //
  84. //        print(resultImage);
  85.     }
  86. }
复制代码

  1. // encode: com.sun.image.codec.jpeg
  2. BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File("C:\\test.jpg")));
  3. JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
  4. JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(resultImage);
  5. param.setQuality(1.0f, false);
  6. encoder.setJPEGEncodeParam(param);
  7. try {
  8.        encoder.encode(resultImage);
  9. }catch(IOException ioe) {
  10.        ioe.printStackTrace();
  11. }
复制代码



结帖率:100% (7/7)
发表于 2017-2-26 22:08:44 | 显示全部楼层   江西省南昌市
可以的,终于看到java板块有人了
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:96% (47/49)
发表于 2017-2-26 09:30:09 | 显示全部楼层   浙江省温州市
yueying 发表于 2017-2-26 09:28
版区资料太少,先丰富起来再说

等我哪天去学java 我给你版区刷屏
回复 支持 反对

使用道具 举报

结帖率:76% (32/42)
 楼主| 发表于 2017-2-26 09:28:17 | 显示全部楼层   山东省*
小李吊炸天 发表于 2017-2-26 09:27
你这版主做的不错 新版区自己先刷屏

版区资料太少,先丰富起来再说
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:96% (47/49)
发表于 2017-2-26 09:27:20 | 显示全部楼层   浙江省温州市
你这版主做的不错 新版区自己先刷屏
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表