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, такое наблюдается везде.