Axiom Справочник языка

Тип, функции и операторы

Изображения IMAGE

Готовая картинка из файла используется в программе как отдельное значение: её загружают один раз, при необходимости измеряют и выводят в нужное место экрана или холста. Для этого служат тип IMAGE, функция LOADIMAGE, функции размеров IMAGEWIDTH и IMAGEHEIGHT и оператор DRAWIMAGE.

Значение типа IMAGE и загрузка

Тип IMAGE хранит ссылку на загруженное полноцветное изображение. Вызов функции LOADIMAGE создаёт значение, которое затем передают в оператор DRAWIMAGE.

DIM <имя> AS IMAGE
LOADIMAGE(<путь>)

Загрузка и измерение относятся к данным изображения и не требуют открытия графической поверхности. Для вывода оператором DRAWIMAGE требуется графический SCREEN 1..10 или полноцветный холст CANVAS.

Части записи

ЧастьОписание
<имя свойства>Переменная типа IMAGE.
<путь>Передайте строковый путь к файлу изображения.
<изображение>Передайте выражение типа IMAGE.
<координата X>, <координата Y>Передайте координаты левого верхнего угла вывода. Каждый перечисленный аргумент имеет тип LONG.
<ширина>, <высота>Передайте положительные размеры итогового вывода в пикселях. Каждый перечисленный аргумент имеет тип LONG.

Функция LOADIMAGE

LOADIMAGE читает файл и возвращает изображение типа IMAGE. Аргумент <путь> имеет тип STRING.

Синтаксис

LOADIMAGE(<путь>)

Абсолютный путь используется непосредственно. В сохранённой программе относительный путь отсчитывается от каталога её файла .axm.

Функции IMAGEWIDTH и IMAGEHEIGHT

Загруженное изображение измеряется в пикселях: IMAGEWIDTH возвращает INTEGER с шириной исходного изображения, IMAGEHEIGHT — с его высотой. У пустого значения обе величины равны 0.

IMAGEWIDTH(<изображение>)
IMAGEHEIGHT(<изображение>)

Обе функции принимают выражение типа IMAGE и читают свойства значения без графического окна, поэтому результат доступен сразу после загрузки.

Оператор DRAWIMAGE

DRAWIMAGE рисует изображение на текущей поверхности. Форма без размеров сохраняет натуральный размер изображения, а форма с аргументами width и height масштабирует его до заданного размера в пикселях.

DRAWIMAGE <изображение>, <координата X>, <координата Y>
DRAWIMAGE <изображение>, <координата X>, <координата Y>, <ширина>, <высота>

Координаты задают левый верхний угол вывода и имеют тип LONG; размеры вывода также передаются как LONG и должны быть положительными. Экран преобразует координаты текущими VIEW и WINDOW, а на холсте координаты мировые и учитывают CAMERA. Прозрачность альфа-канала учитывается при наложении на уже нарисованные пиксели, а часть изображения вне доступных границ экрана или холста обрезается.

Ссылка на изображение и показ кадра

Присваивание значения IMAGE копирует ссылку: обе переменные указывают на одно изображение, и отдельная копия пикселей не создаётся.

На экране рисование изменяет активную страницу, а на холсте — рабочий кадр. Оператор PRESENT явно показывает подготовленный кадр холста. Для подготовки без промежуточного показа используется пара BEGINFRAME/PRESENT; вне этой пары вывод ресурсов может автоматически обновлять окно.

Пределы загрузки и размера вывода

При загрузке изображения в IDE размер каждой стороны должен быть от 1 до 16384 пикселей, площадь — не более 16 777 216 пикселей, размер файла — не более 64 МиБ. Ограничения проверяются до выделения массива пикселей. Неподдерживаемое или слишком большое изображение приводит к MB3005 у функции LOADIMAGE.

У оператора DRAWIMAGE явно заданные ширина и высота вывода должны быть целыми числами от 1 до 2147483647. Координаты должны находиться в диапазоне ±1 000 000 000. Нарушение вызывает MB3007; команда не пропускается молча и не меняет текущую позицию. Масштабированный вывод за пределами поверхности отсекается и не создаёт отдельное изображение целевого размера.

Встроенная функция IMAGEWIDTH

IMAGEWIDTH возвращает ширину исходного изображения в пикселях. Она читает свойства значения без графического окна, поэтому результат доступен сразу.

Синтаксис

IMAGEWIDTH(<изображение>)

Аргумент

Передайте выражение типа IMAGE, свойства которого нужно прочитать. Пустая переменная после объявления допустима.

Результат, ограничения и диагностика

Функция возвращает INTEGER. Для пустого значения результат равен 0. Чтение свойства не загружает файл и не вызывает ошибку из-за пустого ресурса. Несовместимый тип или неверное число аргументов отклоняется компилятором.

Пример

DIM picture AS IMAGE
PRINT IMAGEWIDTH(picture)

Программа печатает 0, поскольку ресурс ещё не загружен. После успешной загрузки функция возвращает фактическое свойство.

См. также

Загрузка и рисование ресурса.

Встроенная функция IMAGEHEIGHT

IMAGEHEIGHT возвращает высоту исходного изображения в пикселях. Она читает свойства значения без графического окна, поэтому результат доступен сразу.

Синтаксис

IMAGEHEIGHT(<изображение>)

Аргумент

Передайте выражение типа IMAGE, свойства которого нужно прочитать. Пустая переменная после объявления допустима.

Результат, ограничения и диагностика

Функция возвращает INTEGER. Для пустого значения результат равен 0. Чтение свойства не загружает файл и не вызывает ошибку из-за пустого ресурса. Несовместимый тип или неверное число аргументов отклоняется компилятором.

Пример

DIM picture AS IMAGE
PRINT IMAGEHEIGHT(picture)

Программа печатает 0, поскольку ресурс ещё не загружен. После успешной загрузки функция возвращает фактическое свойство.

См. также

Загрузка и рисование ресурса.