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; }