说明:
- 涉及到的类:BufferedImage,Graphics2D,ImageIO
- 不多说,很简单,运行例子,查看注释
package com.cxy.gui;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/** 绘制透明背景的文字图片
* @author cxy @ www.cxyapi.com
*/
public class DrawTranslucentPng
{
public static BufferedImage drawTranslucentStringPic(int width, int height, Integer fontHeight,String drawStr)
{
try
{
BufferedImage buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D gd = buffImg.createGraphics();
//设置透明 start
buffImg = gd.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
gd=buffImg.createGraphics();
//设置透明 end
gd.setFont(new Font("微软雅黑", Font.PLAIN, fontHeight)); //设置字体
gd.setColor(Color.ORANGE); //设置颜色
gd.drawRect(0, 0, width - 1, height - 1); //画边框
gd.drawString(drawStr, width/2-fontHeight*drawStr.length()/2,fontHeight); //输出文字(中文横向居中)
return buffImg;
} catch (Exception e) {
return null;
}
}
public static void main(String[] args)
{
BufferedImage imgMap = drawTranslucentStringPic(400, 80, 36,"欢迎访问我的博客");
File imgFile=new File("D://www.cxyapi.com.png");
try
{
ImageIO.write(imgMap, "PNG", imgFile);
} catch (IOException e)
{
e.printStackTrace();
}
System.out.println("生成完成");
}
}
写一个测试的html来测试透明
<div style="background-color:black;height:200px;text-align: center;padding: 100px">
<img src="www.cxyapi.com.png"/><br/>
<span style="font-size:36px;color:orange">www.cxyapi.com</span>
<div>
结果图:
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
3.更多的内容请看我的 个人博客(测试版)