Ссылка CGBitmapContext
CGBitmapContext.h
заголовочный файл определяет функции, создающие и воздействующие на Кварцевый контекст растрового изображения. Контекст растрового изображения является типом CGContextRef
то, что можно использовать для рисования битов к памяти. Функции в этой ссылке воздействуют только на Кварцевые контексты растрового изображения, создаваемые с помощью функции CGBitmapContextCreate
.
Число компонентов для каждого пикселя в контексте растрового изображения указано цветовым пространством (определенный a CGColorSpaceRef
, который включает RGB, шкалу полутонов и CMYK, и который также может указать целевой цветовой профиль). Контекст растрового изображения указывает, должен ли битовый массив содержать альфа-канал, и как сгенерирован битовый массив.
-
Создает контекст растрового изображения.
Объявление
Swift
func CGBitmapContextCreate(_
data
: UnsafeMutablePointer<Void>, _width
: UInt, _height
: UInt, _bitsPerComponent
: UInt, _bytesPerRow
: UInt, _colorspace
: CGColorSpace!, _bitmapInfo
: CGBitmapInfo) -> CGContext!Objective C
CGContextRef CGBitmapContextCreate ( void *data, size_t width, size_t height, size_t bitsPerComponent, size_t bytesPerRow, CGColorSpaceRef space, CGBitmapInfo bitmapInfo );
Параметры
data
Указатель на место назначения в памяти, где должно быть представлено получение. Размер этого блока памяти должен быть, по крайней мере,
(bytesPerRow*height)
байты.В iOS 4.0 и позже, и OS X v10.6 и позже, можно передать
NULL
если Вы хотите, чтобы Кварц выделил память для битового массива. Это освобождает Вас от управления Вашей собственной памятью, сокращающей проблемы утечки памяти.width
Ширина, в пикселях, требуемого битового массива.
height
Высота, в пикселях, требуемого битового массива.
bitsPerComponent
Число битов для использования для каждого компонента пикселя в памяти. Например, для 32-разрядного формата пикселя и цветового пространства RGB, Вы указали бы значение 8 битов за компонент. Для списка поддерживаемых форматов пикселя см. “Поддерживаемые Форматы пикселя” в Графической главе Контекстов Кварца 2D Руководство по программированию.
bytesPerRow
Число байтов памяти для использования на строку битового массива. Если
data
параметрNULL
, передача значения0
заставляет значение быть вычисленным автоматически.colorspace
Цветовое пространство для использования для растрового контекста. Обратите внимание на то, что пробелы индексированного цвета не поддерживаются для контекстов растрового изображения.
bitmapInfo
Константы, указывающие, должен ли битовый массив содержать альфа-канал, относительное расположение альфа-канала в пикселе и информацию о том, являются ли пиксельные компоненты или целочисленными значениями с плавающей точкой. Константы для указания информации об альфа-канале объявляются с
CGImageAlphaInfo
введите, но может быть передан этому параметру безопасно. Можно также передать другие константы, связанные сCGBitmapInfo
ввести. (См. Ссылку CGImage для описанияCGBitmapInfo
иCGImageAlphaInfo
константы.)Для примера того, как указать цветовое пространство, биты на пиксель, компонент бит на пиксель и растровую информацию с помощью
CGBitmapContextCreate
функционируйте, см. “Создание Контекста Растрового изображения” в Графической главе Контекстов Кварца 2D Руководство по программированию.Возвращаемое значение
Новый растровый контекст, или
NULL
если не мог бы быть создан контекст. Вы ответственны за выпуск этого объектного использованияCGContextRelease
.Обсуждение
Когда Вы вызываете эту функцию, Кварц создает растровую среду рисования — т.е. растровый контекст — к Вашим спецификациям. Когда Вы вовлекаете этот контекст, Кварц представляет Ваше получение как побитово отображенные данные в указанном блоке памяти.
Формат пикселя для нового растрового контекста определяется тремя параметрами — число битов на компонент, цветовое пространство и альфа-опцию (выраженный как a
Image Bitmap Information
постоянный). Альфа-значение определяет непрозрачность пикселя, когда это нарисовано.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.0 и позже.
-
Создает контекст растрового изображения с указанной функцией обратного вызова.
Объявление
Swift
func CGBitmapContextCreateWithData(_
data
: UnsafeMutablePointer<Void>, _width
: UInt, _height
: UInt, _bitsPerComponent
: UInt, _bytesPerRow
: UInt, _colorspace
: CGColorSpace!, _bitmapInfo
: CGBitmapInfo, _releaseCallback
: CGBitmapContextReleaseDataCallback, _releaseInfo
: UnsafeMutablePointer<Void>) -> CGContext!Objective C
CGContextRef CGBitmapContextCreateWithData ( void *data, size_t width, size_t height, size_t bitsPerComponent, size_t bytesPerRow, CGColorSpaceRef space, CGBitmapInfo bitmapInfo, CGBitmapContextReleaseDataCallback releaseCallback, void *releaseInfo );
Параметры
data
Указатель на место назначения в памяти, где должно быть представлено получение. Размер этого блока памяти должен быть, по крайней мере,
(bytesPerRow*height)
байты.В iOS 4.0 и позже, и OS X v10.6 и позже, можно передать
NULL
если Вы не заботитесь, где хранятся данные. Это освобождает Вас от управления Вашей собственной памятью, сокращающей проблемы утечки памяти. Кварц имеет больше гибкости, когда это управляет хранением данных для Вас. Например, для Кварца возможно использовать OpenGL для рендеринга, если это заботится о памяти. Не передаватьNULL
если Вы работаете на более ранних операционных системах.width
Ширина, в пикселях, требуемого битового массива.
height
Высота, в пикселях, требуемого битового массива.
bitsPerComponent
Число битов для использования для каждого компонента пикселя в памяти. Например, для 32-разрядного формата пикселя и цветового пространства RGB, Вы указали бы значение 8 битов за компонент. Для списка поддерживаемых форматов пикселя см. “Поддерживаемые Форматы пикселя” в Графической главе Контекстов Кварца 2D Руководство по программированию.
bytesPerRow
Число байтов памяти для использования на строку битового массива. Если
data
параметрNULL
, передача значения0
заставляет значение быть вычисленным автоматически.colorspace
Цветовое пространство для использования для растрового контекста. Обратите внимание на то, что пробелы индексированного цвета не поддерживаются для контекстов растрового изображения.
bitmapInfo
Константы, указывающие, должен ли битовый массив содержать альфа-канал, относительное расположение альфа-канала в пикселе и информацию о том, являются ли пиксельные компоненты или целочисленными значениями с плавающей точкой. Константы для указания информации об альфа-канале объявляются с
CGImageAlphaInfo
введите, но может быть передан этому параметру безопасно. Можно также передать другие константы, связанные сCGBitmapInfo
ввести. (См. Ссылку CGImage для описанияCGBitmapInfo
иCGImageAlphaInfo
константы.)Для примера того, как указать цветовое пространство, биты на пиксель, компонент бит на пиксель и растровую информацию с помощью
CGBitmapContextCreate
функционируйте, см. “Создание Контекста Растрового изображения” в Графической главе Контекстов Кварца 2D Руководство по программированию.releaseCallback
Пользовательский выпуск функционирует для вызова, когда пора выпустить растровые данные. Для синтаксиса этой функции см. описание
CGBitmapContextReleaseDataCallback
тип данных. Можно указатьNULL
для этого параметра.releaseInfo
Указатель на любые данные, которые Вы хотите, передал Вашему пользовательскому обратному вызову выпуска.
Возвращаемое значение
Новый растровый контекст, или
NULL
если не мог бы быть создан контекст. Вы ответственны за выпуск этого объектного использованияCGContextRelease
.Обсуждение
Когда Вы вызываете эту функцию, Кварц создает растровую среду рисования — т.е. растровый контекст — к Вашим спецификациям. Когда Вы вовлекаете этот контекст, Кварц представляет Ваше получение как побитово отображенные данные в указанном блоке памяти.
Формат пикселя для нового растрового контекста определяется тремя параметрами — число битов на компонент, цветовое пространство и альфа-опцию (выраженный как a
Image Bitmap Information
постоянный). Альфа-значение определяет непрозрачность пикселя, когда это нарисовано.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.6 и позже.
-
Создает и возвращает Кварцевое изображение из пиксельных данных в контексте растрового изображения.
Объявление
Swift
func CGBitmapContextCreateImage(_
c
: CGContext!) -> CGImage!Objective C
CGImageRef CGBitmapContextCreateImage ( CGContextRef context );
Параметры
c
Контекст растрового изображения.
Возвращаемое значение
Объект CGImage, содержащий снимок контекста растрового изображения или
NULL
если не создается изображение.Обсуждение
Объект CGImage, возвращенный этой функцией, создается работой копии. Последующие изменения к контексту растрового изображения не влияют на содержание возвращенного изображения. В некоторых случаях работа копии фактически следует за семантикой копии на записи, так, чтобы фактическая физическая копия битов произошла, только если изменяются базовые данные в контексте растрового изображения. Как следствие можно хотеть использовать получающееся изображение и выпустить его перед выполнением дополнительного вовлечения контекста растрового изображения. Таким образом можно избежать фактической физической копии данных.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.4 и позже.
Эти функции возвращаются, значения атрибутов указали, когда создается растровый контекст.
-
Получает растровую информацию, связанную с контекстом растрового изображения.
Объявление
Swift
func CGBitmapContextGetBitmapInfo(_
c
: CGContext!) -> CGBitmapInfoObjective C
CGBitmapInfo CGBitmapContextGetBitmapInfo ( CGContextRef context );
Параметры
c
Контекст растрового изображения.
Возвращаемое значение
Растровая информация контекста растрового изображения или
0
еслиc
не контекст растрового изображения. См. Ссылку CGImage для описанияImage Bitmap Information
константы, которые могут быть возвращены.Обсуждение
CGBitmapInfo
данные, возвращенные функцией, указывают, содержит ли битовый массив альфа-канал и как альфа-канал сгенерирован, вместе с тем, являются ли компоненты с плавающей точкой или целочисленными.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.4 и позже.
-
Возвращает информацию об альфе, связанную с контекстом, указывающим, как растровый контекст обрабатывает альфа-компонент.
Объявление
Swift
func CGBitmapContextGetAlphaInfo(_
context
: CGContext!) -> CGImageAlphaInfoObjective C
CGImageAlphaInfo CGBitmapContextGetAlphaInfo ( CGContextRef context );
Параметры
context
Растровый контекст.
Возвращаемое значение
Постоянная растровая информация. Если указанный контекст не является растровым контекстом,
kCGImageAlphaNone
возвращается. ПосмотритеCGImageAlphaInfo
(переименованный кCGBitmapInfo
в OS X v10.4) для получения дополнительной информации о значениях.Обсуждение
Каждый растровый контекст содержит атрибут, указывающий, содержит ли битовый массив альфа-компонент, и как это сгенерировано. Альфа-компонент определяет непрозрачность пикселя, когда это нарисовано.
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает биты на компонент растрового контекста.
Объявление
Swift
func CGBitmapContextGetBitsPerComponent(_
context
: CGContext!) -> UIntObjective C
size_t CGBitmapContextGetBitsPerComponent ( CGContextRef context );
Параметры
context
Растровый контекст для исследования.
Возвращаемое значение
Число битов на компонент в указанном контексте, или
0
если контекст не является растровым контекстом.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает биты на пиксель растрового контекста.
Объявление
Swift
func CGBitmapContextGetBitsPerPixel(_
context
: CGContext!) -> UIntObjective C
size_t CGBitmapContextGetBitsPerPixel ( CGContextRef context );
Параметры
context
Растровый контекст для исследования.
Возвращаемое значение
Число бит на пиксель в указанном контексте, или
0
если контекст не является растровым контекстом.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает байты на строку растрового контекста.
Объявление
Swift
func CGBitmapContextGetBytesPerRow(_
context
: CGContext!) -> UIntObjective C
size_t CGBitmapContextGetBytesPerRow ( CGContextRef context );
Параметры
context
Растровый контекст для исследования.
Возвращаемое значение
Число байтов на строку указанного контекста, или
0
если контекст не является растровым контекстом.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает цветовое пространство растрового контекста.
Объявление
Swift
func CGBitmapContextGetColorSpace(_
context
: CGContext!) -> CGColorSpace!Objective C
CGColorSpaceRef CGBitmapContextGetColorSpace ( CGContextRef context );
Параметры
context
Растровый контекст для исследования.
Возвращаемое значение
Цветовое пространство указанного контекста, или
NULL
если контекст не является растровым контекстом. Вы ответственны за сохранение и выпуск этого объекта по мере необходимости.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает указатель на данные изображения, связанные с растровым контекстом.
Объявление
Swift
func CGBitmapContextGetData(_
context
: CGContext!) -> UnsafeMutablePointer<Void>Objective C
void * CGBitmapContextGetData ( CGContextRef context );
Параметры
context
Растровый контекст для исследования.
Возвращаемое значение
Указатель на данные изображения указанного растрового контекста, или
NULL
если контекст не является растровым контекстом.Обсуждение
При обеспечении памяти для растровых данных можно использовать этот метод для получения того указателя данных. Если Вы передали
NULL
для указателя данных при создании растрового контекста безопасно получить указатель данных в iOS 4.0 и позже и OS X v10.6 и позже только. В более ранних версиях операционной системы, передаваяNULL
для данных параметр не поддерживается и может привести к катастрофическим отказам при попытке получить доступ к этим данным с помощью этой функции.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает высоту в пикселях растрового контекста.
Объявление
Swift
func CGBitmapContextGetHeight(_
context
: CGContext!) -> UIntObjective C
size_t CGBitmapContextGetHeight ( CGContextRef context );
Параметры
context
Растровый контекст для исследования.
Возвращаемое значение
Высота в пикселях указанного контекста, или
0
если контекст не является растровым контекстом.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Возвращает ширину в пикселях растрового контекста.
Объявление
Swift
func CGBitmapContextGetWidth(_
context
: CGContext!) -> UIntObjective C
size_t CGBitmapContextGetWidth ( CGContextRef context );
Параметры
context
Растровый контекст для исследования.
Возвращаемое значение
Ширина в пикселях указанного контекста, или
0
если контекст не является растровым контекстом.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Функция обратного вызова раньше выпускала партнера данных растрового контекста.
Объявление
Swift
typealias CGBitmapContextReleaseDataCallback = CFunctionPointer<((UnsafeMutablePointer<Void>, UnsafeMutablePointer<Void>) -> Void)>
Objective C
typedef void (*CGBitmapContextReleaseDataCallback)(void *releaseInfo, void *data);
Обсуждение
releaseInfo
параметр содержит контекстные данные, которые Вы передалиCGBitmapContextCreateWithData
функция.data
параметр содержит указатель на растровые данные для Вас для выпуска.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.6 и позже.