CreateBitmap - функция widgetset-a, который подключается с помощью модуля Interfaces. А если его подключить, то программа уже не будет консольной, будет требовать всякие там gtk и т.д.
Альтернатива - использовать пакет fpImage, для поставленной задачи его должно хватить.
Sergei I. Gorelkin писал(а):CreateBitmap - функция widgetset-a, который подключается с помощью модуля Interfaces. А если его подключить, то программа уже не будет консольной, будет требовать всякие там gtk и т.д.
От того, что требуется gtk и т.п. программа не становиться оконной...
Sergei I. Gorelkin писал(а):CreateBitmap - функция widgetset-a, который подключается с помощью модуля Interfaces. А если его подключить, то программа уже не будет консольной, будет требовать всякие там gtk и т.д.
Альтернатива - использовать пакет fpImage, для поставленной задачи его должно хватить.
что-то про заполненные многоугольники ничего в описании этого модуля не нашел.
Кто-нибуть рисовал их с помошью FPImage или нет, вопрос принципиальный.
Или там все это нужно делать ручками????
Уравнени прямых и тд..???
если так, то хотбы скажите как получить доступ к области памти где хранится по-пиксельно изображение, или к ScanLines. Писал подобную вешь, но нужен прямой доступ к памяти изображения...
Посмотрел в исходники... Теперь я вообще жалею, что его посоветовал Прямого доступа к памяти там картинки там нет в принципе, только через Pixels[x,y].
Рисования закрашенных полигонов тоже нет, стоит TODO...
И всеже вернусь к первому посту. а возможно ли вообще создать TBitmap в консольном приложении.
и чтобы это приложение запускалось на runlevel 3 без загруженных X
И может еще есть какие графические библиотека для 2-х мерной графики у FreePascal
запускатьс она будет из голой консоли (из php exec()) и соответстсенно нужна работа без Х-сов
-------
А почему во врем отладки немогу спуститься на уровень исходников этих модулей, отладчик просто не входит в методы TFPImage мне нужно сравнить занчени полей Fdata и мое, которое я получил из этого объекта
(у мен возникает ощущение что он делает что-то не то что написанно в исходниках, это случайно не закрытый проект????)
в TFPMemoryImage это указатель
ширина и высота хранится по смещению в этом указателе 5*4 байта и 6*4 байта соответсвенно
FDATA по смещению 7*4 байта - и по иерархии объектов и по бампу памти, который я смотрел
т.е. доступ получить можно
НО.... беру это значение и заполняю по его адресу нулями первые 100 integer (картинка 450х450), после этого перестает срабатывать сохранение в PNG файл этого образа. Все остальные методы рисования нормально отрабатывают, без ошибок... (могу выложить сюда исходник на котором эксперементирую, если это нужно)
может какую-нибуть таблицу виртуальных методов повреждаю?
как может модуль узать что я изменил изображение не его средствами в runtime и зачем ему это узнавать... (опять же всплывает подозрени закрытости модуля)
полученный адрес где-то такой
$a10080 - странный немного
все адреса выделемые динамически получают адреса как посмотрел
$9xxxxx
Но, в релизных сборках файлы .ppu "отвязаны" от исходников, чтобы при случайном их изменении компилятор не кидался пересобирать все пакеты. Или же на машине, где все собирали, исходники лежали в другом месте относительно .ppu. Отсюда и описанные глюки - он просто не замечает переноса FData в public и т.д.
Как правильнее поступить, даже не знаю - то ли прибить "лишние" .ppu, то ли скопировать пакет в папку проекта, то ли собирать его отдельно с помощью "make; make install"...
как заметил еще вызов метода Pixels у TFPImage приводит к такой же ошибке при сохранении файла... это что значит сам объект не может работать со своими полми корректно??? через TFPCanvas->Colors все проходит нормально...
формат там специфичный чтоли какой? по объвлениям это не видно..
фигня какая-то...