Показать сообщение отдельно
Старый 27.10.2010, 18:30   #13
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_beta: Перенаправления вывода в картинку/на дисплей

Добавил работу с массивом точек.
Новые команды:

create_array(w: integer; h: integer) - создать картинку в виде массива точек размерами w * h

clear_array 
- очистить память от массива точек

draw_array
(x: integer; y: integer) - вывести картинку (из массива точек) на экран (без перерисовки)
    
x, y - координаты левого верхнего угла картинки
    поддерживается полупрозрачность
!
    
poke(x: integer; y: integer; color: integer) - записать точку в массив точек
    x
, y - координаты точки в массиве
    color 
- ARGB цвет точки (подсчитаете на научном калькуляторе)
    
integer peek(x: integer; y: integer) - прочитать значение цвета в точке из массива точек
    x
, y - координаты точки в массиве 
Простейший пример работы с массивом чисел:
Program BetaTest;
Uses beta;
Var 
im: image;
Begin
    CreateImage
(100, 100); // Создаем картинку 100*100    
    
Replace; // Переключаем поток вывода на нашу картинку
    
    
DrawText('odd was here', 0, 0); // Рисуем что-то на картинке
    
DrawImage(LoadImage('/icon.png'), 5, 16); // Для примера выводим в нашу картинку др. картинку
    
    
Replace; // Переключаем фокус вывода назад. Теперь вывод будет идти на дисплей
    
SetColor(0, 255, 0); FillRect(0, 0, GetWidth, GetHeight); // Закрашиваем дисплей
    
im:=GetImage; // Извлекаем полученную картинку в переменную (можно и не в переменную, а вставить внутрь функции DrawImage)
    
DrawImage(im, 5, 5); // Выводим сгенерированную картинку на дисплей
    
Repaint;    
    
Delay(5000);
    
    
// Работа с массивом точек
    
    
SetColor(255, 255, 255); FillRect(0, 0, GetWidth, GetHeight); // Закрашиваем дисплей
    
create_array(100, 50); // Создаем массив точек
    
poke(1, 5, 4278190335); // Закрашиваем точку (1, 5) цветом FF0000FF = 4278190335
    
draw_array(0, 0); // Выводим массив на дисплей
    
Repaint;    
    
Delay(5000);
    
End. 
Вложения
Тип файла: zip Lib_beta.zip (1.6 Кб, 937 просмотров)
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
LIDERSERVIS (28.10.2010), _Nox_ (27.10.2010)