Выделяет и инициализирует память для изображения
Синтаксис
Использование
result = ImageCreate( width, height [, [ color ][, depth ]] )
Параметры
width
Требуемая ширина в пикселях.
height
Требуемая высота в пикселях.
color
Значение пикселя, чтобы заполнить(закрасить) область
изображения.
depth
Требуемая глубина цвета, в битах на пиксель.
Возвращаемое значение
Если изображение не может быть создано, возвращается нуль(
0), в
противном случае возвращается адрес изображения.
ImageCreate
должна вызываться после инициализации графического режима, иначе возвращает
0.
Следовательно, в случае декларации переменной
Shared,
ImageCreate
не может быть использовано в качестве интегрированного инициализатора, даже
внутри
Udt (в области элемента или
конструктора), поскольку значение инициализации (общей переменной)
установлено в начале программы до того, как пользовательский код
выполняется. Вызов выделения изображения должен быть в разделенных
исполняемых инструкциях и после инициализации графического режима.
Описание
Обе процедуры попытаются выделить память для изображения по указанным
width
и
height. Если неудачно, возвращается ноль (0). В противном
случае, изображение такого размера создается и инициализируется, заполнив
всю площадь пикселей со значением
color. Если не указано,
color
принимает значение прозрачного цвета для текущего графического экрана,
который можно найти вызвав
ScreenControl.
В любом случае, адрес изображения возвращается, который затем контролируется
пользователем, и должен быть уничтожен с помощью
ImageDestroy.
Первая процедура создает изображение с глубиной цвета, соответствующей
текущему графическому экрану, которое можно найти вызвав
ScreenControl.
Вторая процедура создает изображение с глубиной цвета
depth,
в битах на пиксель. Для обеих процедур полученное изображение можно
использовать в процедурах рисования, в любом режиме экрана--и даже изменяя
режим--при условии, что глубина цвета изображения соответствует графическому
экрану.
ImageCreate - это рекомендуемый способ выделить память для
нового изображения. Распределение памяти -- размер, структура, и т.д.. --
документально может изменяться от версии к версии, что делает вычисления
вручную размеров неверным подходом. Однако,
ImageInfo
может использоваться для извлечения, среди прочего, размера в байтах
существующего изображения, позволяя вручную выделять память для копии
изображения, или для чтения и записи в файл или устройство.
Get (Графика) может использоваться
для инициализации изображения с помощью предварительно выделенной памяти.
Пример
'' Создание графического экрана.
ScreenRes 320, 200, 32
'' Создание изображения с размером 64 x 64 пикселей , с
темно-зеленым фоном.
Dim image As Any Ptr = ImageCreate( 64, 64, RGB(0, 128, 0) )
If image = 0 Then
Print "Failed to create image."
Sleep
End -1
End If
'' Сделать полупрозрачным красный круг в центре
изображения.
Circle image, (32, 32), 28, RGBA(255, 0, 0, 128),,, 1.0, f
'' Рисуем изображение на экране с помощью различных
методов блитирования.
Put (120, 60), image, PSet
Put (140, 80), image, Alpha
'' Удаляем изображение.
ImageDestroy image
Sleep
Различия диалектов
- Не доступно в диалекте -lang qb
, но есть псевдоним __Imagecreate.
Отличия от QB
См. также