新浪博客

Processing的字体选择

2020-06-08 13:55阅读:
在用Processing创作时常会用到字符,如设计一个节日卡片时在图上配上“节日快乐”。为了应景常常需要选用某种字体与其匹配。在ProcessingIDE中,有种2方式可以在画布上添加文字,但是都遇到使用不直观,不方便都问题。写几行代码解决这个问题。
一、processing提供获取字体都方法:
1、在IDE的“工具”下选择“创建字体”,在下拉的菜单中去找到需要的字体,去生成“*.vlw'文件后再使用。在菜单中繁多的字体又没有样式显示,很难找到需要的字体,除非对各种字体已经烂熟于心。有时找到的字库,也生成了“.vlw”文件了,使用英文字母没有问题,在使用中文字体时却出现不了汉字字体,一遍遍试非常耗时。
2、在程序中用createFont('字库名',字体尺寸),但是使用时同样需要找到字库的样式和其字符库名称。
在Processing 贴上以下几句话,在IDE的控制台会罗列出所有的字库代码和字库名称:
size(200, 200);
String[] fontList = PFont.list();
printArray(fontList);
控制台显示:
~~
[641] 'YuMin_36pKn-Demibold'
[642] 'YuMin_36pKn-Extrabold'
[643] 'YuMin_36pKn-Medium'
[644] 'YuppySC-Regular'
[645] 'YuppyTC-Regular'
[646] 'ZapfDingbatsITC'
[647] 'Zapfino'
一共有650种左右字体!
二、直观地获取字体名称和序号
为了更直观可看到每种字体长什么样,中文是否能正常显示,在IDE上贴上以下程序,用上、下就可以直观地显示字体,同时可以在控制台获得字体编号和字体名称:
PFont font;
int keyState=0;
String[] fontList =PFont.list();
void setup(){
size(900,300);
}
void draw(){
bac
kground(0);
fill(255,125,123);
font =createFont(fontList[keyState],100);
textFont(font,100);
text('我爱processing',30,125);
}
void keyPressed() {
if (key == CODED) {
if (keyCode == UP) {
keyState = keyState+1;
if (keyState> fontList.length-1){
keyState=0;
};
} else if (keyCode == DOWN) {
keyState = keyState-1;
if (keyState <0){
keyState= fontList.length-1;
}
}
}
print('Font list Number is',keyState+','+'Font Name is ');
printArray(fontList[keyState]);
}
Processing的字体选择
截屏中显示选的是序号为的20字体,名称为“Apple-Chancery”。
找到需要的样式,找到相对应的字体名称和序号,就可以在程序中容易地使用字体了。

我的更多文章

下载客户端阅读体验更佳

APP专享