Page 5 of 7
Posted: Fri Aug 24, 2007 6:54 pm
by andrew_programmer
>.Когда-то давно, когда я только учился програмировать, я писал на C++ под Винду, так вот в одной умной книжке я прочитал такую интересную вещь, что необязательно для отмены последних действий хранить всю картинку, альтернативный вариант - запоминать действия пользователя. В текстовом виде. Или в виде подобия опкодов. Когда буфер действий заполняется (а при таком виде заполнится он не скоро), то самое далёкое действие по дате выполняется над изображением, а остальные в буфере смещаются вниз. Действия, например, такие: MoveTo(x,y),LineTo(x,y),FloodFill(x,y)...
Я про это знаю. Просто из временных соображений реализован пока такой вариант.
>2.Я недавно на диске с учебниками математики обнаружил кучу литературы по обработке изображений(с примерами), с радостью, если есть время.
Замечательно. Через год воспользуюсь предложенными описаниями
Re: Graphics editor <<ANIMAGE>>
Posted: Sat Mar 01, 2008 6:20 pm
by Dronchik
Найден баг. При сворачивании анимэджа курсор начинает двигаться рывками.
Re: Graphics editor <<ANIMAGE>>
Posted: Sun Jul 04, 2010 10:45 pm
by IgorA
Хочу добавить в библиотеку
buf2d функции рисования окружности и заливки цветом. Подумал что можно взять их из
animage, но не пойму входные параметры:
Code: Select all
;procedure <<<<<<calculate_circle>>>>>>
; IN
;eax - pointer to screen
;ebx - output array
;ecx - (screen size x)*bytes per pixel
;edx - x_c*65536+y_c
;esi r
; OUT
;eax - number of pixels
calculate_circle:
а именно назначение
pointer to screen и
output array, то же самое и в заливке:
Code: Select all
;procedure <<<<<<flood fill>>>>>
;IN
;eax - pointer to screen
;ebx - pointer to output array
..........
flood_fill:
Также в файле string.inc нашел возможность упростить код, вместо:
Code: Select all
find_symvol:
;eax=string
;ebx=symvol
mov esi,eax
next_symvol:
xor ecx,ecx
mov cl,[eax]
cmp cl,bl
je symvol_fined
inc eax
jmp next_symvol
symvol_fined:
sub eax,esi
ret
сделать так:
Code: Select all
find_symvol:
;eax=string
;ebx=symvol
mov esi,eax
next_symvol:
cmp byte[eax],bl
je symvol_fined
inc eax
jmp next_symvol
symvol_fined:
sub eax,esi
ret
Re: Graphics editor <<ANIMAGE>>
Posted: Tue Jul 06, 2010 11:15 pm
by Asper
IgorA wrote:Также в файле string.inc нашел возможность упростить код
Мой вариант:
Code: Select all
find_symbol:
;edi = string
;ecx = length of string
;al = symbol
push ecx
repne scasb
pop eax
sub eax, ecx
ret
Код не смотрел, но рискну предположить, что
pointer to screen - это указатель на буфер где рисуется графический примитив.
Re: Graphics editor <<ANIMAGE>>
Posted: Wed Jul 07, 2010 8:03 am
by Mario
Animage (как и KFM) нуждается в переписывании с 64 функциии на 68. Без этого в нем нельзя использовать "расшаренную" память и следовательно не прикрутить OpenDialog. Я смотрел код, но без знания что и где переписывать я его не могу - слишком много времени уйдет.
Re: Graphics editor <<ANIMAGE>>
Posted: Tue Sep 28, 2010 11:53 pm
by Mario
У меня хорошая новость - двух-дневным (вернее двух-вечерним) мозговым штурмом Animage переписан с 64 функции на 68, остается прикрутить OpenDialog. Возможно поправлю пару багов за одно.
Ну, и судя по коду - возможна довольно значительна оптимизация - например процедура установки указателей с 100% идентичным кодом была продублирована то ли 3, то ли 4 раза - уже сделал в этом случае оптимизацию кода.
Re: Graphics editor <<ANIMAGE>>
Posted: Thu Sep 30, 2010 4:24 pm
by Mario
SVN r. 1632
1) Приложение использует функцию 68 вместо 64, для управления памятью приложения.
2) Использование
OpenDialog (через библиотеку
proc_lib.obj), для указания пути к открываемому и сохраняемому файлу.
Re: Graphics editor <<ANIMAGE>>
Posted: Thu Sep 30, 2010 6:22 pm
by maximYCH
Надеюсь, оно больше не будет так перерисовываться по-дурацки.
Re: Graphics editor <<ANIMAGE>>
Posted: Fri Oct 01, 2010 10:54 am
by Mario
maximYCH wrote:Надеюсь, оно больше не будет так перерисовываться по-дурацки.
Использование 68 функции никаких изменения в скорость работы и улучшение отрисовки не вносит. Оно просто позволяет теперь подключать библиотеки. Для изменения отрисовки требуется переделать вывод окна - не отрисовывать фон окна ядром, но при этом требуется самому заполнять все пустые места. Если будет время займусь, но пока не до этого.
Re: Graphics editor <<ANIMAGE>>
Posted: Mon Oct 04, 2010 11:52 pm
by Mario
SVN r. 1643 - Animage версии 1.3
1) Устранено мерцание при перерисовке окна.
2) Устранена утечка памяти для стека (вызывать процедуры через call, а затем выходить из них через jmp still - очень плохая идея).
Программа все еще содержит не менее двух багов:
1) Если переместить окно с открытым меню - будет дискотека с цветомузыкой.
2) Если при создании новой картинки, чуть-чуть ошибиться, то лучше сразу закрыть приложение.
Они не столь заметны, но естественно нуждаются в исправлении.
И еще пожалуй нуждается в переписывании на тип окна с заданием сетки координат от базы, учитывающей параметры скина, но эта довольно большой объем работ.
Re: Graphics editor <<ANIMAGE>>
Posted: Sat Oct 09, 2010 6:01 pm
by kogemyaka
А также при активации инструментов выделения и иногда рисвования прямоугольника Animage вылетает.
Re: Graphics editor <<ANIMAGE>>
Posted: Tue Aug 02, 2011 2:17 pm
by Leency
Улучшения во внешнем виде:
- избавился от капса
- надписи в подменю теперь посередине
- help вылазил за границы выделения, исправлено
- немного улучшил внешний вид кнопочек
- теперь лучше видно как нажимается кнопочка (левый верхний бок какбэ вдавливается)
- правильно отрисовывается выбранный цвет
А неплохо бы ещё и программную часть обновить - скроллы, например.
Re: Graphics editor <<ANIMAGE>>
Posted: Tue Aug 09, 2011 1:30 am
by Leency
Хотелось бы немного простых, но крайне важных изменений, чтобы программой можно было пользоваться:
- Ctrl+Z отмена (в идеали и другие хоткеи)
- изменение размера области не приводит к изменению курсора и инструмента редактирования
- по-умолчанию выбран инструмент карантдаш.
P.S. Копирование и вставка поломаны?
Re: Graphics editor <<ANIMAGE>>
Posted: Tue Aug 09, 2011 7:22 am
by Mario
Leency wrote:P.S. Копирование и вставка поломаны?
А они разве работали?
Re: Graphics editor <<ANIMAGE>>
Posted: Thu Aug 11, 2011 8:34 am
by maximYCH
День багрепертов Максимыча продолжается
Впрочем этот баг относится не только к Animage, такое наблюдается везде.