Linux下Java图片和文字合成成功后文字不显示的问题

在Linux环境下,Java合成图片时遇到中文文字不显示的问题,原因是系统找不到'Microsoft YaHei'字体。通过检查Java支持的字体并确认缺少该字体。解决方案是在JRE的lib/fonts目录下创建fallback文件夹,将字体文件复制进去,然后重启服务,使Java能够识别新的字体,从而解决文字不显示的问题。
摘要由CSDN通过智能技术生成

最近使用Java将字体写到图片上时遇到了一个问题,写文字的时候英文字母可以正常写上,而中文却消失了,由于我本地代码是在Windows环境下运行的,而上传到服务器是在Linux环境下运行的,在本地的图片和文字可以正常合成,而上传到服务器后就凉了。。最后发现原来是Java找不到相应字体类型导致的,具体代码如下:

/**
     * 图片上写文字
     * @param backgroundImg 图片
     * @param markContent   文字内容
     * @param fontX 文字距离图片左侧像素
     * @param fontY 文字距离图片上方像素
     * @param fontSize  文字大小
     * @param markContentColor  文字颜色
     * @return
     */
    public static BufferedImage mergeImage(BufferedImage backgroundImg,String markContent,int fontX, int fontY, int fontSize,
                                                 Color markContentColor){
        int width = backgroundImg.getWidth(null) == -1 ? 200 : backgroundImg.getWidth(null);
        int height = backgroundImg.getHeight(null) == -1 ? 200 : backgroundImg.getHeight(null);
        BufferedImage bufferedImage = new BufferedImage(wi
使用Linux平台上的Java编程语言实现给图片加上文字水印,将中文文字展示为方框形状的步骤如下: 1. 首先,确保系统环境中已经安装了Java开发工具(JDK)和相关的库文件。 2. 在Java代码中引入相关的图像处理库,例如Java提供的AWT和Java 2D库。 3. 加载待添加水印的图片文件。可以使用Java IO库中的相关类,如ImageIO类,来读取和处理图片文件。 4. 创建一个新的图片对象,以便在其上添加水印。可以使用BufferedImage类来创建一个空白的图片对象,并设置其大小和颜色模式。 5. 根据读取的图片文件,将其内容绘制到新的图片对象中。可以使用Java 2D库中的Graphics类和Graphics2D类来实现这一步骤。 6. 设计一个方框形状的中文水印。可以通过Java的字体相关类(如Font、FontMetrics等)来设置合适的字体样式和字号,并计算文字的宽度和高度。 7. 在新的图片对象的指定坐标位置上绘制方框形状的中文水印。可以使用Java 2D库中的绘图方法,如drawRect()函数绘制方框的边框,fillRect()函数填充方框的内部,以及drawString()函数绘制中文文字。 8. 最后,将新生成的带有水印的图片保存到文件中。可以使用ImageIO类中的write()函数将图片对象保存为指定的格式(如JPEG、PNG等)的文件。 通过以上步骤,就可以在Linux平台上使用Java编程实现给图片加上中文方框水印的功能了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值