当前位置: 首页>>代码示例>>Java>>正文


Java GlyphMetrics.getLSB方法代码示例

本文整理汇总了Java中java.awt.font.GlyphMetrics.getLSB方法的典型用法代码示例。如果您正苦于以下问题:Java GlyphMetrics.getLSB方法的具体用法?Java GlyphMetrics.getLSB怎么用?Java GlyphMetrics.getLSB使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.awt.font.GlyphMetrics的用法示例。


在下文中一共展示了GlyphMetrics.getLSB方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getGlyphLogicalBounds

import java.awt.font.GlyphMetrics; //导入方法依赖的package包/类
public Shape getGlyphLogicalBounds(int glyphIndex)
{
  GlyphMetrics gm = getGlyphMetrics( glyphIndex );
  if( gm == null )
    return null;
  Rectangle2D r = gm.getBounds2D();
  Point2D p = getGlyphPosition( glyphIndex );

  double[] bounds = new double[] {p.getX() + r.getX() - gm.getLSB(),
                                  p.getY() + r.getY(),
                                  p.getX() + r.getX() - gm.getLSB() + gm.getAdvanceX(),
                                  p.getY() + r.getY() + r.getHeight()};

  if (glyphTransforms[glyphIndex] != null)
    glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 2);

  return new Rectangle2D.Double(bounds[0], bounds[1], bounds[2] - bounds[0],
                                bounds[3] - bounds[1]);
}
 
开发者ID:vilie,项目名称:javify,代码行数:20,代码来源:FreetypeGlyphVector.java

示例2: getGlyphLogicalBounds

import java.awt.font.GlyphMetrics; //导入方法依赖的package包/类
public Shape getGlyphLogicalBounds(int glyphIndex)
{
  GlyphMetrics gm = getGlyphMetrics( glyphIndex );
  if( gm == null )
    return null; 
  Rectangle2D r = gm.getBounds2D();
  Point2D p = getGlyphPosition( glyphIndex );
  
  double[] bounds = new double[] {p.getX() + r.getX() - gm.getLSB(),
                                  p.getY() + r.getY(),
                                  p.getX() + r.getX() - gm.getLSB() + gm.getAdvanceX(),
                                  p.getY() + r.getY() + r.getHeight()};
  
  if (glyphTransforms[glyphIndex] != null)
    glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 2);
  
  return new Rectangle2D.Double(bounds[0], bounds[1], bounds[2] - bounds[0],
                                bounds[3] - bounds[1]);
}
 
开发者ID:nmldiegues,项目名称:jvm-stm,代码行数:20,代码来源:FreetypeGlyphVector.java

示例3: Glyph

import java.awt.font.GlyphMetrics; //导入方法依赖的package包/类
Glyph (int codePoint, Rectangle bounds, GlyphVector vector, int index, UnicodeFont unicodeFont) {
	this.codePoint = codePoint;

	GlyphMetrics metrics = vector.getGlyphMetrics(index);
	int lsb = (int)metrics.getLSB();
	if (lsb > 0) lsb = 0;
	int rsb = (int)metrics.getRSB();
	if (rsb > 0) rsb = 0;

	int glyphWidth = bounds.width - lsb - rsb;
	int glyphHeight = bounds.height;
	if (glyphWidth > 0 && glyphHeight > 0) {
		int padTop = unicodeFont.getPaddingTop();
		int padRight = unicodeFont.getPaddingRight();
		int padBottom = unicodeFont.getPaddingBottom();
		int padLeft = unicodeFont.getPaddingLeft();
		int glyphSpacing = 1; // Needed to prevent filtering problems.
		width = (short)(glyphWidth + padLeft + padRight + glyphSpacing);
		height = (short)(glyphHeight + padTop + padBottom + glyphSpacing);
		yOffset = (short)(unicodeFont.getAscent() + bounds.y - padTop);
	}

	shape = vector.getGlyphOutline(index, -bounds.x + unicodeFont.getPaddingLeft(), -bounds.y + unicodeFont.getPaddingTop());

	isMissing = !unicodeFont.getFont().canDisplay((char)codePoint);
}
 
开发者ID:basherone,项目名称:libgdxcn,代码行数:27,代码来源:Glyph.java

示例4: Glyph

import java.awt.font.GlyphMetrics; //导入方法依赖的package包/类
/**
 * Create a new glyph
 * 
 * @param codePoint The code point in which this glyph can be found
 * @param bounds The bounds that this glrph can fill
 * @param vector The vector this glyph is part of
 * @param index The index of this glyph within the vector
 * @param unicodeFont The font this glyph forms part of
 */
public Glyph(int codePoint, Rectangle bounds, GlyphVector vector, int index, UnicodeFont unicodeFont) {
	this.codePoint = codePoint;

	GlyphMetrics metrics = vector.getGlyphMetrics(index);
	int lsb = (int)metrics.getLSB();
	if (lsb > 0) lsb = 0;
	int rsb = (int)metrics.getRSB();
	if (rsb > 0) rsb = 0;

	int glyphWidth = bounds.width - lsb - rsb;
	int glyphHeight = bounds.height;
	if (glyphWidth > 0 && glyphHeight > 0) {
		int padTop = unicodeFont.getPaddingTop();
		int padRight = unicodeFont.getPaddingRight();
		int padBottom = unicodeFont.getPaddingBottom();
		int padLeft = unicodeFont.getPaddingLeft();
		int glyphSpacing = 1; // Needed to prevent filtering problems.
		width = (short)(glyphWidth + padLeft + padRight + glyphSpacing);
		height = (short)(glyphHeight + padTop + padBottom + glyphSpacing);
		yOffset = (short)(unicodeFont.getAscent() + bounds.y - padTop);
	}

	shape = vector.getGlyphOutline(index, -bounds.x + unicodeFont.getPaddingLeft(), -bounds.y + unicodeFont.getPaddingTop());

	isMissing = !unicodeFont.getFont().canDisplay((char)codePoint);
}
 
开发者ID:j-dong,项目名称:trashjam2017,代码行数:36,代码来源:Glyph.java

示例5: Glyph

import java.awt.font.GlyphMetrics; //导入方法依赖的package包/类
/**
 * Create a new glyph
 *
 * @param codePoint The code point in which this glyph can be found
 * @param bounds The bounds that this glrph can fill
 * @param vector The vector this glyph is part of
 * @param index The index of this glyph within the vector
 * @param unicodeFont The font this glyph forms part of
 */
public Glyph(int codePoint, @Nonnull Rectangle bounds, @Nonnull GlyphVector vector, int index, @Nonnull UnicodeFont unicodeFont) {
    this.codePoint = codePoint;

    GlyphMetrics metrics = vector.getGlyphMetrics(index);
    int lsb = (int)metrics.getLSB();
    if (lsb > 0) lsb = 0;
    int rsb = (int)metrics.getRSB();
    if (rsb > 0) rsb = 0;

    int glyphWidth = bounds.width - lsb - rsb;
    int glyphHeight = bounds.height;
    if (glyphWidth > 0 && glyphHeight > 0) {
        int padTop = unicodeFont.getPaddingTop();
        int padRight = unicodeFont.getPaddingRight();
        int padBottom = unicodeFont.getPaddingBottom();
        int padLeft = unicodeFont.getPaddingLeft();
        int glyphSpacing = 1; // Needed to prevent filtering problems.
        width = (short)(glyphWidth + padLeft + padRight + glyphSpacing);
        height = (short)(glyphHeight + padTop + padBottom + glyphSpacing);
        yOffset = (short)(unicodeFont.getAscent() + bounds.y - padTop);
    }

    shape = vector.getGlyphOutline(index, -bounds.x + unicodeFont.getPaddingLeft(), -bounds.y + unicodeFont.getPaddingTop());

    isMissing = !unicodeFont.getFont().canDisplay((char)codePoint);
}
 
开发者ID:FOShameDotOrg,项目名称:fuzzy-octo-shame,代码行数:36,代码来源:Glyph.java

示例6: writeGlyph

import java.awt.font.GlyphMetrics; //导入方法依赖的package包/类
protected void writeGlyph(String characterName, Shape glyph,
        GlyphMetrics glyphMetrics) throws IOException {

    // FIXME: find out why Acrobat Reader displays some characters displaced
    // when
    // using the correct sidebearing. A value of 0 looks good
    double sidebearing = glyphMetrics != null ? glyphMetrics.getLSB() : 0;
    // double sidebearing = 0;

    // write the binary charstring to a buffer
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    CharstringEncoder charString = (HEX_ENC_CHARSTRINGS ? new CharstringEncoder(
            new EEXECEncryption(new ASCIIHexOutputStream(bytes),
                    EEXECEncryption.CHARSTRING_R))
            : new CharstringEncoder(new EEXECEncryption(bytes,
                    EEXECEncryption.CHARSTRING_R)));

    charString.startChar(sidebearing, (glyphMetrics != null ? glyphMetrics
            .getAdvance() : getUndefinedWidth())); // bounds.getWidth());
    charString.drawPath(glyph);
    charString.endchar();

    // write the buffer to the encrypted fontFile
    byte[] binaryString = bytes.toByteArray();
    encrypted.print("/" + characterName + " " + binaryString.length
            + " RD ");
    for (int i = 0; i < binaryString.length; i++) {
        encrypted.write(binaryString[i] & 0x00ff);
    }
    encrypted.println("ND");
    encrypted.flush();
}
 
开发者ID:phuseman,项目名称:r2cat,代码行数:33,代码来源:FontEmbedderType1.java


注:本文中的java.awt.font.GlyphMetrics.getLSB方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。