java awt实现 fontawesome转png

图片左右滚动代码

001

package net.yunstudio.demo;

002

003

import java.awt.Color;

004

import java.awt.Font;

005

import java.awt.FontMetrics;

006

import java.awt.Graphics;

007

import java.awt.image.BufferedImage;

008

import java.io.BufferedReader;

009

import java.io.File;

010

import java.io.FileInputStream;

011

import java.io.FileOutputStream;

012

import java.io.IOException;

013

import java.io.InputStreamReader;

014

015

import javax.imageio.ImageIO;

016

017

public class Font2png {

018

public static Font loadFont(String fontFileName, float fontSize) // 第一个参数是外部字体名,第二个是字体大小

019

{

020

try {

021

File file = new File(fontFileName);

022

if(!file.exists()){

023

System.out.println("找不到字体文件");

024

}

025

026

FileInputStream aixing = new FileInputStream(file);

027

Font dynamicFont = Font.createFont(Font.TRUETYPE_FONT, aixing);

028

Font dynamicFontPt = dynamicFont.deriveFont(fontSize);

029

aixing.close();

030

return dynamicFontPt;

031

} catch (Exception e)// 异常处理

032

{http://www.huiyi8.com/gundongdaima/zuoyou/

033

e.printStackTrace();

034

return new java.awt.Font("宋体", Font.PLAIN, (int)fontSize);

035

}

036

}

037

038

public static void main(String[] args) {

039

float fontSize=24;

040

int color=0xff000000;

041

String out=new File("").getAbsolutePath();

042

String fontPath=out+"/fontawesome-webfont.ttf";

043

System.out.println(fontPath);

044

String name="icon.png";

045

String text="\uF02c";

046

int paddind=2;

047

InputStreamReader isr=new InputStreamReader(System.in);

048

BufferedReader br=new BufferedReader(isr);

049

try {

050

args=br.readLine().split("\\s+");

051

} catch (IOException e1) {

052

e1.printStackTrace();

053

}

054

055

if(args!=null){

056

for (int i = 0; i < args.length; i+=2) {

057

if(i==args.length-1){

058

continue;

059

}

060

String key=args;

061

String value=args[i+1];

062

if("--name".equals(key)){

063

name=value;

064

}else if("--text".equals(key)){

065

text=value;

066

}if("--padding".equals(key)){

067

paddind=Integer.parseInt(value);

068

}else if("--fontpath".equals(key)){

069

fontPath=value;

070

}else if ("--out".equals(key)) {

071

out=value;

072

}else if("--size".equals(key)){

073

fontSize=Float.valueOf(value);

074

}else if ("--color".equals(key)) {

075

color=Integer.decode(value);

076

}

077

}

078

}

079

int imgSize=(int) (paddind*2+fontSize);

080

BufferedImage image = new BufferedImage(imgSize, imgSize,

081

BufferedImage.TYPE_4BYTE_ABGR_PRE);

082

083

Graphics g=image.getGraphics();

084

085

Font font=loadFont(fontPath, fontSize);

086

g.setFont(font);

087

g.setColor(new Color(color,true));

088

089

FontMetrics fm = g.getFontMetrics();

090

int stringWidth = fm.stringWidth(text);

091

int stringAscent = fm.getAscent();

092

int stringDescent = fm.getDescent ();

093

int x = image.getWidth() / 2 - stringWidth / 2;

094

int y = image.getHeight() / 2 + (stringAscent - stringDescent) / 2;

095

096

g.drawString(text, x, y);

097

098

FileOutputStream fos=null;

099

try {

100

fos=new FileOutputStream(out+'/'+name);

101

ImageIO.write(image, "png", fos);

102

fos.close();

103

} catch (Exception e) {

104

e.printStackTrace();

105

}

106

107

}

108

109

}

font awesome java_java awt实现 fontawesome转png相关推荐

  1. Duplicate method name “$$$getFont$$$“ with signature “(Ljava.lang.String;IILjava.awt.Font;)Ljava.awt

    做IDEA插件的时候明明没有改动代码,却突然报错不能运行了,一番查找百度,得到答案 使用clean,把依赖构筑什么的都清空再运行就不会报这个错误了; 答案来源​​​​​​: Duplicate met ...

  2. java.awt.font 宋体,SpringBoot项目集成字体工具类

    场景:采用JasperReport生成报表时,若将模版中的字体配置成宋体时.部署在不同的系统上时,可能会出现中文乱码的情况,也可以适用于其他任何需要单独配置字体的第三方库. 首先,你可以给部署的服务器 ...

  3. 坦克大战java_java版坦克大战游戏源码

    [java]代码库package tankwar; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; imp ...

  4. java awt 初始化_Java awt项目开发

    通过Java awt 界面上的知识编写的扫雷游戏 代码中有详细的注解 package com.langsin.saolei; import java.awt.Color; import java.aw ...

  5. 折线图 java_java报表折线图

    package com.potevio.rnd.tobacco.mine; import java.util.Map; /** * @description 数据BEAN * @author Zhou ...

  6. 敲地鼠java_Java实现的打地鼠小游戏完整示例【附源码下载】

    本文实例讲述了Java实现的打地鼠小游戏.分享给大家供大家参考,具体如下: 这里涉及到java线程和GUI的相关知识,一个简单的java小游戏打地鼠,有兴趣的朋友可以优化一下.先来看看运行效果: 具体 ...

  7. JAVA awt eventqueue_线程“AWT-EventQueue-1”中的异常java.lang.NullPointerException

    嗨,我收到错误 Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException at P6.itemSt ...

  8. linux 图片编辑 java_Java的图片处理工具类

    Java的图片处理工具类: 可实现以下常用功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等 import java.awt.AlphaComposite; import jav ...

  9. graphics2d 乱码 java_java Graphics2D绘制文字并居中并解决服务器乱码问题

    java Graphics2D绘制文字并居中并解决服务器乱码问题 package com.test.testImage; import java.awt.Color; import java.awt. ...

最新文章

  1. 服务治理治什么,10张图告诉你答案
  2. vue 编译警告 Compiled with 4 warnings
  3. java如何解决跨站点请求伪造_AppScan漏洞扫描之-跨站点请求伪造
  4. linux下vtune使用
  5. 前端学习(1575):复习todoMVC
  6. java 整数存储为2进制补码形式
  7. IE Automation Tabs
  8. 基于JAVA+SpringMVC+MYSQL的排班管理系统
  9. [转]以绝招应对损招 查***
  10. Java中的反射与JDK动态代理
  11. cocos2dx 显示html,cocos2dx - 在游戏中显示HTML页面
  12. Maven – 父子 POM 示例
  13. MySQL进阶-02-多表设计
  14. 基于Arduino、ESP8266的物联网项目开发方案整理、毕业设计(第一波)
  15. c语言象棋教程下载,C语言程序源代码中国象棋.doc-资源下载在线文库www.lddoc.cn...
  16. 视网膜电图特征可以检测成人的抑郁状态和治疗反应:一种机器学习方法
  17. 三只大老虎和三只小老虎过河
  18. 刷酸记录(迪维维A酸乳膏)20190905
  19. css改变鼠标图片大小,CSS实现鼠标经过图片上图片等比缩放效果(代码实例)
  20. 工程流体力学笔记暂记15(理想流体的运动微分方程)

热门文章

  1. 开源程序识别图像像素点_开源浏览器扩展程序,可放大图像
  2. zappos核心价值_尽管Zappos说了什么,中层管理人员仍然很重要
  3. 优必选能开放软硬件源代码吗_开放式硬件为何胜出
  4. GlobalSight在翻译社区中与开源大放异彩
  5. JavaScript深度迭代遍历未知对象
  6. es6 async函数的基本用法
  7. es6 Generator函数概述
  8. pow()函数的应用
  9. ROS笔记(16) ArbotiX
  10. IDEA中的将项目提交到远程git仓库