Java 图片添加水印

如果遇到字体乱码的情况。可参考以下方案解决:

第一步 将Windows下的字体【宋体】库复制到服务器上 Windows字体路径:C:\Windows\Fonts\simsun.ttc

第二步    复制信息 
    cp simsun.ttc /usr/share/fonts/

第三步    建立索引、更新缓存
    cd /usr/share/fonts/
    mkfontscale
    mkfontdir
    fc-cache

第四步    验证字体是否安装完毕
    fc-list :lang=zh

 

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import javax.imageio.ImageIO;




public class test {
	
    public static void addWaterMark(String imagurl,String waterMarkContent,Color markContentColor,Font font){

		try {     
	    	URL url = new URL(imagurl);
	    	BufferedInputStream bis = new BufferedInputStream(url.openStream());
	        BufferedImage img = ImageIO.read(bis);
	        Integer width = img.getWidth(null);
	        Integer height = img.getHeight(null);
	    	 BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
	    	 Graphics2D g = tag.createGraphics();
	    	 g.drawImage(img, 0, 0, width, height, null); 
	    	 g.setColor(markContentColor);
	    	 g.setFont(font);
             
             int x = 0;
             int y = height-10;
             g.drawString(waterMarkContent, x, y); 
             g.dispose();
// 	    	 ByteArrayOutputStream baos = new ByteArrayOutputStream();
//	         ImageIO.write(tag, "jpg", baos);
//	         bis.close();
//	         byte[] retArr = baos.toByteArray();	         
	         String path = System.getProperty("user.dir")+"/t.jpg";
	         System.out.println(path);
	         FileOutputStream file = new FileOutputStream(path);
	         ImageIO.write(tag, "jpg", file);
	         file.flush();
	         file.close(); 
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }

    public static void main(String[] args) {
   	 Font font = new Font("宋体", Font.PLAIN, 35);
	 String waterMarkContent="水印图片";  
	 Color color=new Color(255,255,255,128);
	 String imagurl = "";	//图片链接 
	 addWaterMark(imagurl,waterMarkContent, color.green, font);
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值