没想到到星期一上班脖子就不得劲,顺便查了点资料,发现个山寨版的颈椎矫正图,觉得挺有意思。
如下图:
于是回家后想到自己也做个玩。
问题是,咱爷们不说程序员吧,好歹也是个垒码的,直接PS文字图未免有碍观瞻,于是抽空写了个 Java自动生成版的。
代码如下:
package org.test;import java.awt.AlphaComposite;import java.awt.Canvas;import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.RenderingHints;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/*** Copyright 2008** Licensed under the Apache License, Version 2.0 (the "License"); you may not* use this file except in compliance with the License. You may obtain a copy of* the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the* License for the specific language governing permissions and limitations under* the License.** @project loonframework* @author chenpeng* @email:ceponline@yahoo.com.cn* @version 0.1*/public class MessageImage extends Canvas { /** * */ private static final long serialVersionUID = 1L; private BufferedImage fontImage; private Graphics2D g2d; private Image backImage; final static private int WIDTH = 600; final static private int HEIGHT = 480; public MessageImage(final String messages) { fontImage = new BufferedImage(WIDTH, HEIGHT, 2); g2d = fontImage.createGraphics(); try { backImage=ImageIO.read(new File("back.png")); } catch (IOException e) { e.printStackTrace(); } g2d.drawImage(backImage, 0, 0, null); setAlpha(g2d, 0.7); int size = 25; int newLine = (WIDTH / size) - 10; char[] messageChars = messages.toCharArray(); boolean d = true; StringBuilder sbr = new StringBuilder(); int count = 0; int len = messageChars.length - 1; String fontStyle. = "幼圆"; Color color = Color.white; for (int i = 0, j = 0; i <= len; i++, j++) { sbr.append(messageChars[i]); if (j == newLine || (messageChars[i] == '/n')) { g2d.drawImage(createImageMessages(1, false, sbr.toString(), color, fontStyle, 1, size, d), count += 30, (HEIGHT - (sbr.length() * size)) - (size * 4), null); d = !d; sbr.delete(0, sbr.length()); j = 0; } else if (i == len) { g2d.drawImage(createImageMessages(1, false, sbr.toString(), color, fontStyle, 1, size, d), count += 30, (HEIGHT - (sbr.length() * size)) - (size * 4), null); } } setAlpha(g2d, 0.6); String mes = "Java版颈椎自动矫正图"; fontStyle. = "华文新魏"; size = 20; g2d.drawImage(createImageMessages(0, true, mes, Color.red, fontStyle, 1, size, false), WIDTH - (mes.length() * size) - (size * 2), 人若软弱就是自己最大的敌人