Класс GlyphVector
- java.lang.Object
-
- java.awt.font.GlyphVector
- Все реализованные интерфейсы:
Cloneable
public abstract class GlyphVector extends Object implements Cloneable
Объект GlyphVector представляет собой коллекцию глифов, содержащую геометрическую информацию для размещения каждого глифа в преобразованном координатном пространстве, соответствующем устройству, на котором GlyphVector в конечном итоге отображается.
Объект GlyphVector не пытается интерпретировать последовательность глифов, которые он содержит. Взаимоотношения между соседними глифами в последовательности используются только для определения размещения глифов в визуальном координатном пространстве.
Экземпляры GlyphVector создаются с помощью Font.
В приложении для обработки текста, которое может кэшировать промежуточные представления текста, создание и последующее кэширование GlyphVector для использования во время рендеринга является самым быстрым методом представления визуального представления символов пользователю.
Объект GlyphVector ассоциирован ровно с одним Font, и может предоставлять данные, полезные только в связи с этим Font. Кроме того, метрики, полученные из GlyphVector, как правило, не масштабируются геометрически, так как пикселизация и интервалы зависят от алгоритмов подгонки к сетке внутри Font. Для обеспечения точного измерения GlyphVector и его составных глифов, вы должны указать преобразование масштабирования, режим антиалиасинга и режим дробных метрик при создании GlyphVector. Эти характеристики могут быть получены с устройства назначения.
Для каждого глифа в GlyphVector вы можете получить:
- положение глифа
- преобразование, связанное с глифом
- метрики глифа в контексте
GlyphVector. Метрики глифа могут отличаться при различных преобразованиях, заданных приложением параметрах рендеринга и конкретном экземпляре глифа внутриGlyphVector.
Изменение данных, используемых для создания GlyphVector не изменяет состояние GlyphVector.
Предоставляются методы для изменения позиций глифов в GlyphVector. Эти методы наиболее подходят для приложений, выполняющих операции выравнивания для представления глифов.
Предоставляются методы для преобразования отдельных глифов в GlyphVector. Эти методы, прежде всего, полезны для специальных эффектов.
Предоставляются методы для возвращения визуальных, логических и пиксельных границ всего GlyphVector или отдельных глифов внутри GlyphVector.
Предоставляются методы для возврата Shape для GlyphVector и для отдельных глифов в GlyphVector.
- См. также:
-
Font,GlyphMetrics,TextLayout
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static int | FLAG_COMPLEX_GLYPHS | Флаг, используемый с getLayoutFlags, указывающий, что этот |
static int | FLAG_HAS_POSITION_ADJUSTMENTS | Флаг, используемый с getLayoutFlags, указывающий, что этот |
static int | FLAG_HAS_TRANSFORMS | Флаг, используемый с getLayoutFlags, указывающий, что этот |
static int | FLAG_MASK | Маска поддерживаемых флагов из getLayoutFlags. |
static int | FLAG_RUN_RTL | Флаг, используемый с getLayoutFlags, указывающий, что этот |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
GlyphVector() |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract boolean | equals(GlyphVector set) | Проверяет, равен ли указанный |
abstract Font | getFont() | Возвращает |
abstract FontRenderContext | getFontRenderContext() | Возвращает |
int | getGlyphCharIndex(int glyphIndex) | Возвращает индекс символа указанного глифа. |
int[] | getGlyphCharIndices(int beginGlyphIndex,
int numEntries,
int[] codeReturn) | Возвращает индексы символов указанных глифов. |
abstract int | getGlyphCode(int glyphIndex) | Возвращает код глифа указанного глифа. |
abstract int[] | getGlyphCodes(int beginGlyphIndex,
int numEntries,
int[] codeReturn) | Возвращает массив кодов глифов для указанных глифов. |
abstract GlyphJustificationInfo | getGlyphJustificationInfo(int glyphIndex) | Возвращает информацию о выравнивании для глифа в указанном индексе в этом |
abstract Shape | getGlyphLogicalBounds(int glyphIndex) | Возвращает логические границы указанного глифа внутри этого |
abstract GlyphMetrics | getGlyphMetrics(int glyphIndex) | Возвращает метрики глифа в указанном индексе в этом |
abstract Shape | getGlyphOutline(int glyphIndex) | Возвращает |
Shape | getGlyphOutline(int glyphIndex,
float x,
float y) | Возвращает |
Rectangle | getGlyphPixelBounds(int index,
FontRenderContext renderFRC,
float x,
float y) | Возвращает пиксельные границы глифа в индексе, когда этот |
abstract Point2D | getGlyphPosition(int glyphIndex) | Возвращает положение указанного глифа относительно начала этого |
abstract float[] | getGlyphPositions(int beginGlyphIndex,
int numEntries,
float[] positionReturn) | Возвращает массив позиций глифов для указанных глифов. |
abstract AffineTransform | getGlyphTransform(int glyphIndex) | Возвращает преобразование указанного глифа внутри этого |
abstract Shape | getGlyphVisualBounds(int glyphIndex) | Возвращает визуальные границы указанного глифа внутри |
int | getLayoutFlags() | Возвращает флаги, описывающие общее состояние GlyphVector. |
abstract Rectangle2D | getLogicalBounds() | Возвращает логические границы этого |
abstract int | getNumGlyphs() | Возвращает количество глифов в этом |
abstract Shape | getOutline() | Возвращает |
abstract Shape | getOutline(float x,
float y) | Возвращает |
Rectangle | getPixelBounds(FontRenderContext renderFRC,
float x,
float y) | Возвращает пиксельные границы этого |
abstract Rectangle2D | getVisualBounds() | Возвращает визуальные границы этого |
abstract void | performDefaultLayout() | Назначает стандартные позиции каждому глифу в этом |
abstract void | setGlyphPosition(int glyphIndex,
Point2D newPos) | Устанавливает положение указанного глифа внутри этого |
abstract void | setGlyphTransform(int glyphIndex,
AffineTransform newTX) | Устанавливает преобразование указанного глифа внутри этого |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
FLAG_HAS_TRANSFORMS
public static final int FLAG_HAS_TRANSFORMS
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть преобразования для каждого глифа.
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_HAS_POSITION_ADJUSTMENTS
public static final int FLAG_HAS_POSITION_ADJUSTMENTS
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть корректировки позиций. Когда это значение истинно, позиции глифов не совпадают с накопленными значениями по умолчанию для глифов (например, если была применена кернинг).
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_RUN_RTL
public static final int FLAG_RUN_RTL
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть направление пробега справа налево. Это относится к отображению глифов в символы и не подразумевает, что визуальные положения глифов обязательно в этом порядке, хотя обычно они таковы.
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_COMPLEX_GLYPHS
public static final int FLAG_COMPLEX_GLYPHS
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть сложное отображение глифов в символы (отображение, которое не отображает глифы в символы по одному в строго возрастающем или убывающем порядке, соответствующем направлению пробега).
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_MASK
public static final int FLAG_MASK
Маска для поддерживаемых флагов из getLayoutFlags. Только биты, покрытые маской, должны быть проверены.
- Since:
- 1.4
- См. также:
- Значения константных полей
Конструкторы
GlyphVector
public GlyphVector()
Методы
getFont
public abstract Font getFont()
Возвращает Font , связанную с этим GlyphVector.
- Возвращает:
-
Font, используемой для создания этогоGlyphVector. - См. также:
Font
getFontRenderContext
public abstract FontRenderContext getFontRenderContext()
Возвращает FontRenderContext , связанную с этим GlyphVector.
- Возвращает:
-
FontRenderContext, используемой для создания этогоGlyphVector. - См. также:
-
FontRenderContext,Font
performDefaultLayout
public abstract void performDefaultLayout()
Назначает значения по умолчанию для позиций каждого глифа в этом GlyphVector. Это может привести к потере информации, полученной во время начального макета этого GlyphVector.
getNumGlyphs
public abstract int getNumGlyphs()
Возвращает количество глифов в этом GlyphVector.
- Возвращает:
- количество глифов в этом
GlyphVector.
getGlyphCode
public abstract int getGlyphCode(int glyphIndex)
Возвращает код глифа указанного глифа. Это значение не имеет смысла для чего-либо, кроме объекта Font , который создал этот GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого необходимо извлечь код глифа. - Возвращает:
- код глифа глифа в указанном
glyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphCodes
public abstract int[] getGlyphCodes(int beginGlyphIndex,
int numEntries,
int[] codeReturn) Возвращает массив кодов глифов для указанных глифов. Содержимое этого возвращаемого значения не имеет смысла ни для чего, кроме объекта Font , используемого для создания этого GlyphVector . Этот метод используется для удобства и производительности при обработке кодов глифов. Если массив не передан, создается новый массив.
- Параметры:
-
beginGlyphIndex- индекс в этомGlyphVector, с которого начинается извлечение кодов глифов -
numEntries- количество кодов глифов для извлечения -
codeReturn- массив, в который помещаются коды глифов и который затем возвращается - Возвращает:
- массив кодов глифов для указанных глифов.
- Исключения:
-
IllegalArgumentException- еслиnumEntriesменьше 0 -
IndexOutOfBoundsException- еслиbeginGlyphIndexменьше 0 -
IndexOutOfBoundsException- если суммаbeginGlyphIndexиnumEntriesбольше количества глифов в этомGlyphVector
getGlyphCharIndex
public int getGlyphCharIndex(int glyphIndex)
Возвращает индекс символа указанного глифа. Индекс символа — это индекс первого логического символа, представленного глифом. Реализация по умолчанию предполагает взаимно однозначное, слева направо отображение глифов на символы.
- Параметры:
-
glyphIndex- индекс глифа - Возвращает:
- индекс первого символа, представленного глифом
- С тех пор:
- 1.4
getGlyphCharIndices
public int[] getGlyphCharIndices(int beginGlyphIndex,
int numEntries,
int[] codeReturn) Возвращает индексы символов указанных глифов. Индекс символа — это индекс первого логического символа, представленного глифом. Индексы возвращаются в порядке глифов. По умолчанию реализация вызывает getGlyphCharIndex для каждого глифа, и подклассы, вероятно, захотят переопределить эту реализацию по соображениям производительности. Используйте этот метод для удобства и производительности при обработке кодов глифов. Если массив не передан, создается новый массив.
- Параметры:
-
beginGlyphIndex- индекс первого глифа -
numEntries- количество индексов глифов -
codeReturn- массив, в который возвращаются индексы символов - Возвращает:
- массив индексов символов, по одному на каждый глиф.
- С тех пор:
- 1.4
getLogicalBounds
public abstract Rectangle2D getLogicalBounds()
Возвращает логические границы этого GlyphVector. Этот метод используется при позиционировании этого GlyphVector относительно визуально смежных GlyphVector объектов.
- Возвращает:
- a
Rectangle2D, который представляет собой логические границы этогоGlyphVector.
getVisualBounds
public abstract Rectangle2D getVisualBounds()
Возвращает визуальные границы этого GlyphVector. Визуальные границы — это ограничивающая рамка контура этого GlyphVector . Из-за растрирования и выравнивания пикселей возможно, что эта рамка не охватывает все пиксели, затронутые рендерингом этого GlyphVector.
- Возвращает:
- a
Rectangle2D, который представляет собой ограничивающую рамку этогоGlyphVector.
getPixelBounds
public Rectangle getPixelBounds(FontRenderContext renderFRC,
float x,
float y) Возвращает пиксельные границы этого GlyphVector при рендеринге в графике с заданным FontRenderContext в заданном месте. RenderFRC необязательно должен быть таким же, как FontRenderContext этого GlyphVector, и может быть null. Если он равен null, используется FontRenderContext этого GlyphVector . Реализация по умолчанию возвращает визуальные границы, смещенные на x, y и округленные до ближайшего целого значения (то есть возвращает целочисленный прямоугольник, охватывающий визуальные границы) и игнорирует FRC. Подклассы должны переопределить этот метод.
- Параметры:
-
renderFRC-FontRenderContextGraphics. -
x- координата x, в которой необходимо отобразить этотGlyphVector. -
y- координата y, в которой необходимо отобразить этотGlyphVector. - Возвращает:
- a
Rectangle, ограничивающий пиксели, которые будут затронуты. - С тех пор:
- 1.4
getOutline
public abstract Shape getOutline()
Возвращает Shape , внутренняя часть которого соответствует визуальному представлению этого GlyphVector.
- Возвращает:
- a
Shape, который представляет собой контур этогоGlyphVector.
getOutline
public abstract Shape getOutline(float x,
float y) Возвращает Shape , внутренняя часть которого соответствует визуальному представлению этого GlyphVector при отображении в x, y.
- Параметры:
-
x- координата X этогоGlyphVector. -
y- координата Y этогоGlyphVector. - Возвращает:
- a
Shape, который представляет собой контур этогоGlyphVectorпри отображении в указанных координатах.
getGlyphOutline
public abstract Shape getGlyphOutline(int glyphIndex)
Возвращает Shape , внутренняя часть которого соответствует визуальному представлению указанного глифа в этом GlyphVector. Контур, возвращаемый этим методом, размещается вокруг начала каждого отдельного глифа.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- a
Shape, который представляет собой контур глифа в указанномglyphIndexэтомGlyphVector. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphOutline
public Shape getGlyphOutline(int glyphIndex,
float x,
float y) Возвращает Shape , внутренняя часть которого соответствует визуальному представлению указанного глифа в этом GlyphVector, смещенного на x, y. Контур, возвращаемый этим методом, размещается вокруг начала каждого отдельного глифа.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
x- координата X расположения этогоGlyphVector -
y- координата Y расположения этогоGlyphVector - Возвращает:
- a
Shape, который представляет собой контур глифа в указанномglyphIndexэтогоGlyphVectorпри отображении в указанных координатах. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - С тех пор:
- 1.4
getGlyphPosition
public abstract Point2D getGlyphPosition(int glyphIndex)
Возвращает позицию указанного глифа относительно начала координат этого GlyphVector . Если glyphIndex равно числу глифов в этом GlyphVector , этот метод возвращает позицию после последнего глифа. Эта позиция используется для определения продвижения всего GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- объект
Point2D, который представляет собой позицию глифа в указанномglyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше количества глифов в этомGlyphVector - См. также:
setGlyphPosition(int, java.awt.geom.Point2D)
setGlyphPosition
public abstract void setGlyphPosition(int glyphIndex,
Point2D newPos) Устанавливает положение указанного глифа в этом GlyphVector . Если glyphIndex равно количеству глифов в этом GlyphVector , этот метод устанавливает позицию после последнего глифа. Эта позиция используется для определения продвижения всего GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
newPos-Point2D, в котором необходимо позиционировать глиф в указанномglyphIndex - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше количества глифов в этомGlyphVector - См. также:
getGlyphPosition(int)
getGlyphTransform
public abstract AffineTransform getGlyphTransform(int glyphIndex)
Возвращает преобразование указанного глифа в этом GlyphVector. Преобразование относительно позиции глифа. Если не было применено специальное преобразование, null может быть возвращено. Нулевое значение возврата указывает на тождественное преобразование.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- объект
AffineTransform, представляющий собой преобразование глифа в указаннойglyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
setGlyphTransform(int, java.awt.geom.AffineTransform)
setGlyphTransform
public abstract void setGlyphTransform(int glyphIndex,
AffineTransform newTX) Устанавливает преобразование указанного глифа в этом GlyphVector. Преобразование относительно позиции глифа. Аргумент null для newTX указывает, что для указанного глифа не применяется специальное преобразование. Этот метод может использоваться для поворота, отражения, трансляции и масштабирования глифа. Добавление преобразования может привести к существенным изменениям производительности.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
newTX- новое преобразование глифа вglyphIndex - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
getGlyphTransform(int)
getLayoutFlags
public int getLayoutFlags()
Возвращает флаги, описывающие общее состояние GlyphVector. Флаги, не описанные ниже, зарезервированы. Реализация по умолчанию возвращает 0 (что означает false) для корректировок позиции, преобразований, RTL и сложных флагов. Подклассы должны переопределить этот метод и убедиться, что он правильно описывает GlyphVector и соответствует результатам связанных вызовов.
- Возвращает:
- целое число, содержащее флаги, описывающие состояние
- С:
- 1.4
- См. также:
-
FLAG_HAS_POSITION_ADJUSTMENTS,FLAG_HAS_TRANSFORMS,FLAG_RUN_RTL,FLAG_COMPLEX_GLYPHS,FLAG_MASK
getGlyphPositions
public abstract float[] getGlyphPositions(int beginGlyphIndex,
int numEntries,
float[] positionReturn) Возвращает массив позиций глифов для указанных глифов. Этот метод используется для удобства и производительности при обработке позиций глифов. Если массив не передан, создается новый. Четные элементы массива, начиная с нулевой позиции, содержат координаты X глифа с номером beginGlyphIndex + position/2. Нечетные элементы массива, начиная с первой позиции, содержат координаты Y глифа с номером beginGlyphIndex + (position-1)/2. Если beginGlyphIndex равно количеству глифов в этом GlyphVector, этот метод получает позицию после последнего глифа, и эта позиция используется для определения продвижения всего GlyphVector.
- Параметры:
-
beginGlyphIndex- индекс, с которого начинать получение позиций глифов -
numEntries- количество глифов для получения -
positionReturn- массив, в который будут помещены позиции глифов, а затем возвращен. - Возвращает:
- массив позиций глифов, заданных
beginGlyphIndexиnumEntries. - Исключения:
-
IllegalArgumentException- еслиnumEntriesменьше 0 -
IndexOutOfBoundsException- еслиbeginGlyphIndexменьше 0 -
IndexOutOfBoundsException- если суммаbeginGlyphIndexиnumEntriesбольше количества глифов в этомGlyphVectorплюс один
getGlyphLogicalBounds
public abstract Shape getGlyphLogicalBounds(int glyphIndex)
Возвращает логические границы указанного глифа в этом GlyphVector. Эти логические границы имеют в общей сложности четыре грани, две грани параллельны базовой линии под преобразованием глифа, а две другие грани общие с соседними глифами, если они присутствуют. Этот метод полезен для проверки попадания в указанный глиф, позиционирования курсора на ведущей или хвостовой границе глифа и для рисования области выделения вокруг указанного глифа.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, для которого необходимо получить логические границы - Возвращает:
- объект
Shape, представляющий собой логические границы глифа в указанномglyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
getGlyphVisualBounds(int)
getGlyphVisualBounds
public abstract Shape getGlyphVisualBounds(int glyphIndex)
Возвращает визуальные границы указанного глифа в GlyphVector. Границы, возвращаемые этим методом, расположены вокруг начала координат каждого отдельного глифа.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, для которого необходимо получить визуальные границы - Возвращает:
- объект
Shape, представляющий собой визуальные границы глифа в указанномglyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
getGlyphLogicalBounds(int)
getGlyphPixelBounds
public Rectangle getGlyphPixelBounds(int index,
FontRenderContext renderFRC,
float x,
float y) Возвращает пиксельные границы глифа с указанным индексом, когда этот GlyphVector отображается в Graphics с заданным FontRenderContext в заданном месте. Объект renderFRC не обязательно должен совпадать с FontRenderContext этого GlyphVector, и может быть равен null. Если он равен null, используется FontRenderContext этого GlyphVector. Реализация по умолчанию возвращает визуальные границы глифа, смещенные по x, y и округленные до ближайшего целого значения, и игнорирует FRC. Подклассы должны переопределить этот метод.
- Параметры:
-
index- индекс глифа. -
renderFRC-FontRenderContextGraphics. -
x- позиция X для отображения этогоGlyphVector. -
y- позиция Y для отображения этогоGlyphVector. - Возвращает:
- объект
Rectangleограничивающий пиксели, которые будут затронуты. - С:
- 1.4
getGlyphMetrics
public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
Возвращает метрики глифа с указанным индексом в этом GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, для которого необходимо получить метрики - Возвращает:
- объект
GlyphMetrics, представляющий метрики глифа в указанномglyphIndexв этомGlyphVector. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphJustificationInfo
public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
Возвращает информацию о выравнивании глифа с указанным индексом в этом GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, для которого необходимо получить свойства выравнивания - Возвращает:
- объект
GlyphJustificationInfo, представляющий свойства выравнивания глифа в указанномglyphIndexв этомGlyphVector. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
equals
public abstract boolean equals(GlyphVector set)
Проверяет, равен ли указанный GlyphVector этому GlyphVector.
- Параметры:
-
set- указанныйGlyphVectorдля проверки - Возвращает:
-
trueесли указанныйGlyphVectorравен этомуGlyphVector;falseв противном случае.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/font/GlyphVector.html