Graphics editor <<ANIMAGE>>
-
Рекомендую сверить giflib.inc с gif_lite.inc из дистрибутива K0600 или 0630. А то у меня есть вредная привычка исправлять глюки и никому об этом не говорить.
Victor
Это один из глюков примитивного меню.Как я уже говорил,меню делалось для временного использования.Нужно писать нормальное полноценное меню(в общем библиотеку универсального и полноценного GUI).Как автор программы я знаю обовсех багах в ANIMAGE(в том числе и о тех,которые вы ещё не заметили ).
Mario79
Для того,чтобы KFM запускал ANIMAGE для редактирования BMP файлов, необходимо в KFM.INI файле написать строку:
bmp /rd/1/animage
Марат, сделать в KFM возможность выбора между MV и ANIMAGE - это уже к тебе.
diamond
Хорошо,проверю.
P.S.
На этих каникулах я хотел заниматься разработкой ANIMAGE, но по независящим от меня причинам(тяжёлые жизненные обстоятельства в семье) я не смогу этого сделать.
Это один из глюков примитивного меню.Как я уже говорил,меню делалось для временного использования.Нужно писать нормальное полноценное меню(в общем библиотеку универсального и полноценного GUI).Как автор программы я знаю обовсех багах в ANIMAGE(в том числе и о тех,которые вы ещё не заметили ).
Mario79
Для того,чтобы KFM запускал ANIMAGE для редактирования BMP файлов, необходимо в KFM.INI файле написать строку:
bmp /rd/1/animage
Марат, сделать в KFM возможность выбора между MV и ANIMAGE - это уже к тебе.
diamond
Хорошо,проверю.
P.S.
На этих каникулах я хотел заниматься разработкой ANIMAGE, но по независящим от меня причинам(тяжёлые жизненные обстоятельства в семье) я не смогу этого сделать.
andrew_programmer
Похоже что при выходе через меню редактор не удаляет курсоры.
Похоже что при выходе через меню редактор не удаляет курсоры.
Проверю.
Я уже немного подзабыл код ANIMAGE.
Я уже немного подзабыл код ANIMAGE.
andrew_programmer
Извиняюсь за назойливость)), но мож у тебя появилось время доделать полосы прокрутки? Сейчас они большие, т.к. таскать можно только за них. Но в некоторых прогах (KFM например) уже реализован код когда можно сводить курсор с полос прокрутки.
Мм.. ещё. Если закрыть диалог "Открыть" или "Сохранить как...", то меню стаёт неактивным и рисовать уже нельзя.
В любом случае удачи.
Извиняюсь за назойливость)), но мож у тебя появилось время доделать полосы прокрутки? Сейчас они большие, т.к. таскать можно только за них. Но в некоторых прогах (KFM например) уже реализован код когда можно сводить курсор с полос прокрутки.
Мм.. ещё. Если закрыть диалог "Открыть" или "Сохранить как...", то меню стаёт неактивным и рисовать уже нельзя.
В любом случае удачи.
Дела я всегда делаю в порядке степени приоритетности.
Leency, поверь, как только приоритет дойдёт до графического редактора - займусь им.
С появлением библиотеки libGUI набросать на форму скролер стало делом пяти минут. Вот только код ANIMAGE писался до появления libGUI, поэтому нужно значительно переделывать код ANIMAGE под libGUI. К тому-же надо переделывать работу с памятью под новый менеджер памяти Колибри.
А меню - тема для отдельного разговора. Надо несколько переделать оконную систему Колибри для его реализации.
Leency, поверь, как только приоритет дойдёт до графического редактора - займусь им.
С появлением библиотеки libGUI набросать на форму скролер стало делом пяти минут. Вот только код ANIMAGE писался до появления libGUI, поэтому нужно значительно переделывать код ANIMAGE под libGUI. К тому-же надо переделывать работу с памятью под новый менеджер памяти Колибри.
А меню - тема для отдельного разговора. Надо несколько переделать оконную систему Колибри для его реализации.
А что с памятью kos, можно ссылку на акцент данного вопроса?
..bw
..bw
bw
В MenuetOS и ранних версиях Колибри единственной возможностью работы с динамической памятью было изменение размера памяти функцией 64. После трудов Serge появилось действительно выделение/освобождение блоков памяти 68.11/12/13, но ещё не все программы об этом знают.
В MenuetOS и ранних версиях Колибри единственной возможностью работы с динамической памятью было изменение размера памяти функцией 64. После трудов Serge появилось действительно выделение/освобождение блоков памяти 68.11/12/13, но ещё не все программы об этом знают.
andrew_programmer
Давно заметил такое дело (но все забывал написать): в Qemy 64 Мб памяти прописано, BMP файл размером 10 Мб не открывается – черный фон вместо файла, прописываю 128 Мб, все открывается. На реальном компере (старый Cyrix) памяти 32 Мб – файлы больше 1,5 Мб (приблизительно) тоже не открываются.
Вот у меня и возник вопрос – глюк программы или как? Даже если считать что программа резервирует двойной размер памяти под файл и откаты, все равно должно открываться, так как системе требуется не более 7-8 Мб всего, это с учетом всех приложений, запущенных лаунчером при старте.
Давно заметил такое дело (но все забывал написать): в Qemy 64 Мб памяти прописано, BMP файл размером 10 Мб не открывается – черный фон вместо файла, прописываю 128 Мб, все открывается. На реальном компере (старый Cyrix) памяти 32 Мб – файлы больше 1,5 Мб (приблизительно) тоже не открываются.
Вот у меня и возник вопрос – глюк программы или как? Даже если считать что программа резервирует двойной размер памяти под файл и откаты, все равно должно открываться, так как системе требуется не более 7-8 Мб всего, это с учетом всех приложений, запущенных лаунчером при старте.
Mario79
Размер расходуемой ANIMAGE памяти = 5MB+6*размер_распакованного_файла(3*размер_по_x*размер_по_y)
С появлением новых возможностей работы с файлами и нового менеджера памяти Колибри - можно уменьшить размер расходуемой памяти. Но полное переписывание ANIMAGE на новый менеджер памяти, новый интерфейс через libGUI, новую работу с файлами, займёт дней 7-10 непрерывной работы(с утра до вечера).
Мне этим летом нужно ещё некоторую работу выполнить, которая облегчит мне жизнь во время тяжёлой учёбы. Незнаю, останеться ли у меня этим летом время для ANIMAGE.
Размер расходуемой ANIMAGE памяти = 5MB+6*размер_распакованного_файла(3*размер_по_x*размер_по_y)
С появлением новых возможностей работы с файлами и нового менеджера памяти Колибри - можно уменьшить размер расходуемой памяти. Но полное переписывание ANIMAGE на новый менеджер памяти, новый интерфейс через libGUI, новую работу с файлами, займёт дней 7-10 непрерывной работы(с утра до вечера).
Мне этим летом нужно ещё некоторую работу выполнить, которая облегчит мне жизнь во время тяжёлой учёбы. Незнаю, останеться ли у меня этим летом время для ANIMAGE.
andrew_programmer
Будим надеяться что удастцо, т.к. графический редактор - это очень важная составляющая операционной системы. Не дадим Менуетчикам (Вилле и ко) нас перегнать!
Будим надеяться что удастцо, т.к. графический редактор - это очень важная составляющая операционной системы. Не дадим Менуетчикам (Вилле и ко) нас перегнать!
andrew_programmer
6*размер_распакованного_файла ?!!!!!!!! Шесть!!!!!!
Челюсть валяется где-то под столом у соседа....
Это зачем такие "скромные" потребности в памяти? Я чего-то не понимаю...
6*размер_распакованного_файла ?!!!!!!!! Шесть!!!!!!
Челюсть валяется где-то под столом у соседа....
Это зачем такие "скромные" потребности в памяти? Я чего-то не понимаю...
Mario79
64 функция крайне скудна на возможности работы с памятью, поэтому приходиться резервировать буферы размером с распакованную картинку.Даже если нужно скопировать часть картинки размером 2х2 пиксела, под это всёравно выделяется буфер размером с распакованную картику.
А память в ANIMAGE распределяется так:
5MB -статический экранный буфер под максимальное разрешение 1280*1024
дальше идут буферы размером с распакованную картинку(назовём это pak)
1 pak для самой картинки
2 pak-а для двух отмен последнего действия
1 pak для хранения скопированной выделенной части картинки
1 pak для хранения фона под скопированной картинкой, чтобы при его перемещении по картинке он не затирал основное изображение.
1 pak При сохранениии картинки она сначала упаковывается в этот буфер, а потом только записывается в файл(раньше небыло 70-ой функции).
Сейчас, когда есть настоящее динамическое выделение памяти, ненужно выделять статические буферы. Нужно выделять динамические буферы в зависимости от действий пользователя при редактировании картинки. Это позволит варьировать размер расходуемой памяти от 3-х распакованных картинок(минимум) до 5(максимум)(в зависимости от действий пользователя).
64 функция крайне скудна на возможности работы с памятью, поэтому приходиться резервировать буферы размером с распакованную картинку.Даже если нужно скопировать часть картинки размером 2х2 пиксела, под это всёравно выделяется буфер размером с распакованную картику.
А память в ANIMAGE распределяется так:
5MB -статический экранный буфер под максимальное разрешение 1280*1024
дальше идут буферы размером с распакованную картинку(назовём это pak)
1 pak для самой картинки
2 pak-а для двух отмен последнего действия
1 pak для хранения скопированной выделенной части картинки
1 pak для хранения фона под скопированной картинкой, чтобы при его перемещении по картинке он не затирал основное изображение.
1 pak При сохранениии картинки она сначала упаковывается в этот буфер, а потом только записывается в файл(раньше небыло 70-ой функции).
Сейчас, когда есть настоящее динамическое выделение памяти, ненужно выделять статические буферы. Нужно выделять динамические буферы в зависимости от действий пользователя при редактировании картинки. Это позволит варьировать размер расходуемой памяти от 3-х распакованных картинок(минимум) до 5(максимум)(в зависимости от действий пользователя).
andrew_programmer
Да нет, я в принципе ничего не имею против - просто удивил размер. В KFM я тоже использовал 64 функцию, а данные панелей в памяти таскаются туда сюда. Правда размер любой папки редко бывает больше размера BMP файла. Видимо мой подход оправдывается лишь при не очень больших объемах данных.
Да нет, я в принципе ничего не имею против - просто удивил размер. В KFM я тоже использовал 64 функцию, а данные панелей в памяти таскаются туда сюда. Правда размер любой папки редко бывает больше размера BMP файла. Видимо мой подход оправдывается лишь при не очень больших объемах данных.
1.Когда-то давно, когда я только учился програмировать, я писал на C++ под Винду, так вот в одной умной книжке я прочитал такую интересную вещь, что необязательно для отмены последних действий хранить всю картинку, альтернативный вариант - запоминать действия пользователя. В текстовом виде. Или в виде подобия опкодов. Когда буфер действий заполняется (а при таком виде заполнится он не скоро), то самое далёкое действие по дате выполняется над изображением, а остальные в буфере смещаются вниз. Действия, например, такие: MoveTo(x,y),LineTo(x,y),FloodFill(x,y)...
2.Я недавно на диске с учебниками математики обнаружил кучу литературы по обработке изображений(с примерами), с радостью, если есть время.
2.Я недавно на диске с учебниками математики обнаружил кучу литературы по обработке изображений(с примерами), с радостью, если есть время.
Who is online
Users browsing this forum: No registered users and 1 guest