`

生成文字图片

    博客分类:
  • java
 
阅读更多

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

/**
 * @author yaoyuanliang
 * @date 2018/1/19
 */
public class FontImageUtil {


    public static byte[] generateImage(String name,int width,int height,String fontName,int size){
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        try {
            // 创建BufferedImage对象
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            // 获取Graphics2D
            Graphics2D g2d = image.createGraphics();

            // ---------- 增加下面的代码使得背景透明 -----------------
            image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
            g2d.dispose();
            g2d = image.createGraphics();
            // ---------- 背景透明代码结束 -----------------

            // 画图
            g2d.setColor(new Color(255,0,0));
            g2d.setStroke(new BasicStroke(1));

            FontRenderContext context = g2d.getFontRenderContext();
            Font font= new Font(fontName,Font.BOLD,size);
            g2d.setFont(font);
            Rectangle2D bounds = font.getStringBounds(name, context);
            double x = (width - bounds.getWidth()) / 2;
            double y = (height - bounds.getHeight()) / 2;

            double ascent = -bounds.getY();
            double baseY = y + ascent;
            //绘制字符串

            g2d.drawString(name, (int)x+25, (int)baseY);
            //释放对象
            g2d.dispose();

            // 保存文件
            ImageIO.write(image, "png",out);

        } catch (IOException e) {
            e.printStackTrace();
        }
        return out.toByteArray();
    }
 @Test
    public void test_19(){
        try {
            String name="爱新觉";
            int width=280;
            int height=120;
            String fontName="薛文轩钢笔楷体";
            int size=66;

            byte[] bytes = FontImageUtil.generateImage(name, width, height, fontName, size);

            String dic = "D:\\12\\";
            String ctime = System.currentTimeMillis()+"";
            File file = new File(dic+ctime+".png");
            FileUtils.writeByteArrayToFile(file,bytes);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
分享到:
评论

相关推荐

    C# 生成文字图片二维码

    在IT行业中,生成文字图片二维码是一项常见的需求,特别是在移动应用、网页设计以及数据分享等领域。C# 是一种广泛使用的编程语言,它提供了丰富的库和工具来实现这样的功能。本篇文章将详细探讨如何在C#中生成文字...

    ps自动生成文字图片

    本项目利用PS的脚本功能自动生成文字图片,尤其适用于游戏开发中将文字资源转化为不易被修改的图片格式,如PNG。这个过程可以通过以下步骤来实现: 首先,我们需要理解“字.jsx”这个脚本文件。它是由ActionScript...

    图片工具类,生成文字图片(JAVA)

    在IT行业中,生成文字图片是一项常见的需求,例如用于制作社交媒体配图、海报设计或验证码等。这个主题聚焦于使用Java编程语言实现这一功能。本文将详细介绍如何利用Java编写一个图片工具类,生成带有文字的图片,并...

    Android 生成文字图片验证码

    在Android平台上,生成文字图片验证码(通常称为CAPTCHA)是一项常见的安全措施,用于防止自动化的恶意操作,如机器人注册或登录。以下将详细介绍如何在Android应用中实现这一功能。 首先,验证码的核心在于生成...

    c#文字生成图片

    "C#文字生成图片"是一个常见的需求,特别是在数据可视化、报告生成、动态文本艺术或验证码生成等场景。本实例将深入探讨如何利用C#来实现这个功能。 首先,我们需要了解C#中的图像处理库。在.NET框架中,System....

    PHP把文字生成图片的简单例子

    总的来说,PHP生成文字图片是通过结合图像处理库和字体文件实现的,它为开发者提供了灵活的图像生成和定制能力,使得在Web应用中实现各种创新功能成为可能。无论是简单的验证码还是复杂的图形设计,PHP都能胜任。在...

    js文字 生成图片特效

    在生成文字图片特效时,我们通常会用CSS来设计文字的样式,如字体、大小、颜色、阴影等,为后续的图片生成打下基础。 接着,我们要介绍JavaScript的核心概念——DOM(文档对象模型)。DOM是HTML和XML文档的编程接口...

    Android实现文字转图片

    本文将详细讲解如何实现这个功能,包括设置文字的大小、字体、颜色、透明度,以及背景色、背景透明度,并指导如何将生成的图片保存到SD卡上。 首先,我们需要在Android项目中添加必要的依赖。为了绘制文字,我们将...

    java 生成文字图片的示例代码

    "java 生成文字图片的示例代码" 本文主要介绍了java 生成文字图片的示例代码,通过使用java.awt和java.io包中的类,可以生成指定样式和内容的文字图片。下面是相关的知识点: 1. java.awt包中的类:java.awt包提供...

    android 文字转换成图片

    android 将文字转换成图片 测试代码

    vc++ 根据文字生成图片 文字图片验证码.zip

    "vc++ 根据文字生成图片 文字图片验证码.zip"是一个关于如何使用Visual C++(简称VC++)编程语言来创建文字图片验证码的项目。这个压缩包可能包含必要的源代码、文档和其他资源,帮助开发者了解和实现验证码生成的...

    phpgd库生成图片带背景和文字还有图片合成的详细教程

    在GD库的帮助下,我们可以轻松地生成带背景和文字的图片,并进行多图合成。 首先,让我们从创建一个带背景的图片开始。你可以使用`imagecreatetruecolor()`函数来创建一个新的真彩色图像资源,然后通过`imagefill()...

    Go-imggen:使用Golang自定义文字生成表情包图片.

    img_gen:使用Golang自定义文字生成表情包图片.

    文字生成图片工具

    "文字生成图片工具"是一种创新的解决方案,专为解决社交媒体平台文字输入限制而设计。在微博、QQ空间说说、人人网等平台,通常存在字数上限,这可能限制了用户表达复杂想法或分享长篇内容的能力。通过将文字转换为...

    Canvas画布图片文字拼接合成,生成图片

    本文将深入探讨如何利用Canvas进行图片和文字的拼接合成,生成自定义的图像,尤其适用于制作邀请函、海报等个性化内容。我们将主要围绕以下几个关键知识点展开: 1. **Canvas元素的创建与引用** 在HTML中,通过`...

    根据文字在线生成图片程序

    在IT领域,根据文字在线生成图片的程序是一种实用的技术,尤其在网页设计、社交媒体和品牌推广中广泛应用。这种程序能够将输入的文字转化为图形图像,通常用于制作logo、标语或者简单的信息图表。以下是对这个主题的...

    java生产文字图片(消除线段的锯齿状边缘)

    在Java编程语言中,生成文字图片并消除线段锯齿状边缘是一项常见的需求,尤其是在创建图形用户界面(GUI)或进行图像处理时。这个过程通常涉及到二维图形渲染和字体渲染技术。下面我们将深入探讨如何在Java中实现这...

    canvas生成图片 将输入框的文字生成一张图片 生成祝福和签名 并保存到本地相册图库

    以上代码实现了将用户输入的文字合成到背景图片上,并生成可供下载的PNG图片。需要注意的是,由于跨域限制,背景图片需要在同一域名下或有正确CORS设置。此外,对于兼容性问题,某些浏览器可能不支持`canvas....

    红茶巴士文字生成图片PHP程序 v1.0

    红茶巴士文字生成图片系统,基于PHP环境实现,可以把用户提交的文字生成一张图片,转换结果文字清晰,色彩鲜艳。支持用户自定义字体,支持文字颜色及背景色设置,程序可以智能按照中英文字体的不同宽度自动折行,...

    C# 生成二维码源码 可生成图片 底部可显示文字

    本文将详细解析标题为“C# 生成二维码源码 可生成图片 底部可显示文字”的知识内容,以及如何在C#环境中实现这一功能。 首先,C#是微软开发的一种面向对象的编程语言,它具有丰富的类库和强大的.NET框架支持,非常...

Global site tag (gtag.js) - Google Analytics