java 图片绘制到另一张图片

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

  

猜你喜欢

转载自www.cnblogs.com/xiaoxiaoguai/p/8954005.html
今日推荐