public static String exportImg(PiousCard piousCard,HttpServletRequest request){
try {
//1.jpg是你的 主图片的路径
String jzz = request.getSession().getServletContext().getRealPath(File.separator) + ReadConfig.getConfigValue("jzz") + File.separator;
InputStream is = new FileInputStream(jzz +"jzz.jpg");
//通过JPEG图象流创建JPEG数据流解码器
JPEGImageDecoder jpegDecoder = JPEGCodec.createJPEGDecoder(is);
//解码当前JPEG数据流,返回BufferedImage对象
BufferedImage buffImg = jpegDecoder.decodeAsBufferedImage();
//得到画笔对象
Graphics g = buffImg.getGraphics();
//创建你要附加的图象。
//小图片的路径
String uploadDir = request.getSession().getServletContext().getRealPath(File.separator) + ReadConfig.getConfigValue("uploadRoot")
+ File.separator+ ReadConfig.getConfigValue("barcode") + File.separator;
String imgUrl = uploadDir+piousCard.getTwoCode();
ImageIcon imgIcon = new ImageIcon(uploadDir+piousCard.getTwoCode());
//得到Image对象。
Image img = imgIcon.getImage();
//将小图片绘到大图片上。
//5,300 .表示你的小图片在大图片上的位置。
g.drawImage(img,105,405,null);
//设置颜色。
g.setColor(Color.BLACK);
//最后一个参数用来设置字体的大小
Font f = new Font("宋体",Font.PLAIN,11);
Color mycolor = Color.BLACK;//new Color(0, 0, 255);
g.setColor(mycolor);
g.setFont(f);
//10,20 表示这段文字在图片上的位置(x,y) .第一个是你设置的内容。
g.drawString("扫描验证真伪",100,470);
Graphics2D tip = buffImg.createGraphics();
tip.setColor(Color.BLACK);
//设置字体
Font tipFont = new Font("宋体", Font.PLAIN, 14);
tip.setFont(tipFont);
//内容,左右位置,上下位置
tip.drawString(piousCard.getPersonName(), 135, 285);
tip.drawString(piousCard.getYear(), 160, 323);
tip.drawString(piousCard.getCardNum(), 553, 82);
SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
tip.drawString(bartDateFormat.format(piousCard.getIssueDate()), 590, 460);
g.dispose();
OutputStream os;
// os = new FileOutputStream("d:/union.jpg");
String upJzzUrl = request.getSession().getServletContext().getRealPath(File.separator) + ReadConfig.getConfigValue("uploadRoot")
+ File.separator;
String shareFileName = piousCard.getCardNum()+ ".jpg";
os = new FileOutputStream(upJzzUrl+shareFileName);
//创键编码器,用于编码内存中的图象数据。
JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);
en.encode(buffImg);
is.close();
os.close();
return shareFileName;
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}