首页 > 代码库 > Processing 字体变形
Processing 字体变形
在Processing中做字体变形通常需要有以下基础知识:
1、PGraphics对象
2、图片像素化
制作过程也不复杂,代码如下:
1 color ELLIPSE_COLOR = color(0); 2 color LINE_COLOR = color(0, 125); 3 color PGRAPHICS_COLOR = color(0); 4 int LINE_LENGTH = 25; 5 boolean reverseDrawing = false; 6 PGraphics pg; 7 PFont f = createFont("宋体", 42); 8 void setup() { 9 size(1280, 720,P2D);10 pg = createGraphics(width, height, JAVA2D);11 pg.beginDraw();12 pg.textFont(f);13 pg.textSize(300);14 pg.textAlign(CENTER, CENTER);15 pg.fill(PGRAPHICS_COLOR);16 pg.text("麥塔威", pg.width/2, pg.height/2);17 pg.endDraw();18 }19 void draw() {20 int gridH = (int) map(mouseX, 0, width, 30, 100);21 int gridV = (int) map(mouseY, 0, height, 15, 100);22 float w = width/gridH;23 float h = height/gridV;24 float r = min(w, h);25 26 background(255);27 strokeWeight(1);28 for (int y=0; y<gridV; y++) {29 for (int x=0; x<gridH; x++) {30 float _x = x*w;31 float _y = y*h;32 color c = pg.get(int(_x), int(_y));33 boolean textDraw = (c == PGRAPHICS_COLOR);34 if (textDraw) {35 noStroke();36 fill(ELLIPSE_COLOR);37 ellipse(_x, _y, r, r);38 } else {39 stroke(LINE_COLOR);40 line(_x, _y, _x+LINE_LENGTH, _y+LINE_LENGTH);41 }42 }43 }44 }
其中,setup部分的pg操作都是在PGraphics对象上的操作,这个对象就类似于画布上的画布,而draw里面两个for循环则是实现字体变形的关键,将图片像素化以后比对字体颜色和背景颜色就可以将字体从背景中“抠”出来,然后想捏扁还是捏圆就看各人的喜好了~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。