给图片添加水印

/**
	 * 把图片印刷到图片上
	 * @param pressImg -- 水印文件
	 * @param targetImg -- 目标文件
	 * @param x --x坐标
	 * @param y --y坐标
	 * @return 
	 */
	byte[] pressImage(InputStream syInput, InputStream targetInput) {
		final ByteArrayOutputStream out = new ByteArrayOutputStream();
		
	    try {
	        //目标文件
	        Image src = ImageIO.read(targetInput);
	        int wideth = src.getWidth(null);
	        int height = src.getHeight(null);
	        BufferedImage image = new BufferedImage(wideth, 
                                                        height, 
                                                        BufferedImage.TYPE_INT_RGB);
	        Graphics g = image.createGraphics();
	        g.drawImage(src, 0, 0, wideth, height, null);

	        //水印文件
	        Image src_biao = ImageIO.read(syInput);
	        int wideth_biao = src_biao.getWidth(null);
	        int height_biao = src_biao.getHeight(null);
	        int x = 0, y = 0;
	        
	        A: for (int i = 0; ; i++) {
	        	x = wideth_biao * i;
	        	
	        	if(x >= wideth)
	        		break A;
	        	
	        	B: for (int j = 0; ; j++) {
	        		y = height_biao * j;
		        	
		        	if(y > height)
		        		break B;
		        	
		        	g.drawImage(src_biao, x, y, wideth_biao, height_biao, null);
				}
			}
	        
	        //水印文件结束
	        g.dispose();
	        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
	        encoder.encode(image);
	        
	        return out.toByteArray();
	    } catch (Exception e) {
	        LOGGER.error(e.getMessage(), e);
	    } finally {
	    	try {
				out.close();
			} catch (IOException e) {
			}
	    }
	    
	    return null;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值