Mega Code Archive

 
Categories / Java Tutorial / 2D Graphics
 

Generate Shape From Text

import java.awt.Font; import java.awt.Graphics2D; import java.awt.Polygon; import java.awt.Shape; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; /*  * $Id: ShapeUtils.java,v 1.4 2008/10/14 22:31:46 rah003 Exp $  *  * Copyright 2006 Sun Microsystems, Inc., 4150 Network Circle,  * Santa Clara, California 95054, U.S.A. All rights reserved.  *  * This library is free software; you can redistribute it and/or  * modify it under the terms of the GNU Lesser General Public  * License as published by the Free Software Foundation; either  * version 2.1 of the License, or (at your option) any later version.  *   * This library is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  * Lesser General Public License for more details.  *   * You should have received a copy of the GNU Lesser General Public  * License along with this library; if not, write to the Free Software  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA  */ public class Utils {   public static Shape generateShapeFromText(Font font, char ch) {     return generateShapeFromText(font, String.valueOf(ch));   }   public static Shape generateShapeFromText(Font font, String string) {     BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);     Graphics2D g2 = img.createGraphics();     try {       GlyphVector vect = font.createGlyphVector(g2.getFontRenderContext(), string);       Shape shape = vect.getOutline(0f, (float) -vect.getVisualBounds().getY());       return shape;     } finally {       g2.dispose();     }   } }