Board.KolibriOS.org
http://board.kolibrios.org/

Graphics editor <<ANIMAGE>>
http://board.kolibrios.org/viewtopic.php?f=38&t=559
Page 5 of 7

Author:  andrew_programmer [ Fri Aug 24, 2007 6:54 pm ]
Post subject: 

>.Когда-то давно, когда я только учился програмировать, я писал на C++ под Винду, так вот в одной умной книжке я прочитал такую интересную вещь, что необязательно для отмены последних действий хранить всю картинку, альтернативный вариант - запоминать действия пользователя. В текстовом виде. Или в виде подобия опкодов. Когда буфер действий заполняется (а при таком виде заполнится он не скоро), то самое далёкое действие по дате выполняется над изображением, а остальные в буфере смещаются вниз. Действия, например, такие: MoveTo(x,y),LineTo(x,y),FloodFill(x,y)...

Я про это знаю. Просто из временных соображений реализован пока такой вариант.

>2.Я недавно на диске с учебниками математики обнаружил кучу литературы по обработке изображений(с примерами), с радостью, если есть время.

Замечательно. Через год воспользуюсь предложенными описаниями :)

Author:  Dronchik [ Sat Mar 01, 2008 6:20 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

Найден баг. При сворачивании анимэджа курсор начинает двигаться рывками.

Author:  IgorA [ Sun Jul 04, 2010 10:45 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

Хочу добавить в библиотеку buf2d функции рисования окружности и заливки цветом. Подумал что можно взять их из animage, но не пойму входные параметры:
Code:
;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:
;procedure <<<<<<flood fill>>>>>
;IN
;eax - pointer to screen
;ebx - pointer to output array
..........
flood_fill:



Также в файле string.inc нашел возможность упростить код, вместо:
Code:
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:
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

Author:  Asper [ Tue Jul 06, 2010 11:15 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

IgorA wrote:
Также в файле string.inc нашел возможность упростить код

Мой вариант:
Code:
find_symbol:
   ;edi = string
   ;ecx = length of string
   ;al = symbol
   push  ecx
   repne scasb
   pop    eax
   sub    eax, ecx
   ret


Код не смотрел, но рискну предположить, что pointer to screen - это указатель на буфер где рисуется графический примитив.

Author:  Mario [ Wed Jul 07, 2010 8:03 am ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

Animage (как и KFM) нуждается в переписывании с 64 функциии на 68. Без этого в нем нельзя использовать "расшаренную" память и следовательно не прикрутить OpenDialog. Я смотрел код, но без знания что и где переписывать я его не могу - слишком много времени уйдет.

Author:  Mario [ Tue Sep 28, 2010 11:53 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

У меня хорошая новость - двух-дневным (вернее двух-вечерним) мозговым штурмом Animage переписан с 64 функции на 68, остается прикрутить OpenDialog. Возможно поправлю пару багов за одно.

Ну, и судя по коду - возможна довольно значительна оптимизация - например процедура установки указателей с 100% идентичным кодом была продублирована то ли 3, то ли 4 раза - уже сделал в этом случае оптимизацию кода.

Author:  Mario [ Thu Sep 30, 2010 4:24 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

SVN r. 1632
1) Приложение использует функцию 68 вместо 64, для управления памятью приложения.
2) Использование OpenDialog (через библиотеку proc_lib.obj), для указания пути к открываемому и сохраняемому файлу.

Author:  maximYCH [ Thu Sep 30, 2010 6:22 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

Надеюсь, оно больше не будет так перерисовываться по-дурацки.

Author:  Mario [ Fri Oct 01, 2010 10:54 am ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

maximYCH wrote:
Надеюсь, оно больше не будет так перерисовываться по-дурацки.

Использование 68 функции никаких изменения в скорость работы и улучшение отрисовки не вносит. Оно просто позволяет теперь подключать библиотеки. Для изменения отрисовки требуется переделать вывод окна - не отрисовывать фон окна ядром, но при этом требуется самому заполнять все пустые места. Если будет время займусь, но пока не до этого.

Author:  Mario [ Mon Oct 04, 2010 11:52 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

SVN r. 1643 - Animage версии 1.3
1) Устранено мерцание при перерисовке окна.
2) Устранена утечка памяти для стека (вызывать процедуры через call, а затем выходить из них через jmp still - очень плохая идея).

Программа все еще содержит не менее двух багов:
1) Если переместить окно с открытым меню - будет дискотека с цветомузыкой.
2) Если при создании новой картинки, чуть-чуть ошибиться, то лучше сразу закрыть приложение.
Они не столь заметны, но естественно нуждаются в исправлении.

И еще пожалуй нуждается в переписывании на тип окна с заданием сетки координат от базы, учитывающей параметры скина, но эта довольно большой объем работ.

Author:  kogemyaka [ Sat Oct 09, 2010 6:01 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

А также при активации инструментов выделения и иногда рисвования прямоугольника Animage вылетает.

Author:  Leency [ Tue Aug 02, 2011 2:17 pm ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

Улучшения во внешнем виде:
- избавился от капса
- надписи в подменю теперь посередине
- help вылазил за границы выделения, исправлено
- немного улучшил внешний вид кнопочек
- теперь лучше видно как нажимается кнопочка (левый верхний бок какбэ вдавливается)
- правильно отрисовывается выбранный цвет

А неплохо бы ещё и программную часть обновить - скроллы, например.

Author:  Leency [ Tue Aug 09, 2011 1:30 am ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

Хотелось бы немного простых, но крайне важных изменений, чтобы программой можно было пользоваться:
- Ctrl+Z отмена (в идеали и другие хоткеи)
- изменение размера области не приводит к изменению курсора и инструмента редактирования
- по-умолчанию выбран инструмент карантдаш.

P.S. Копирование и вставка поломаны?

Author:  Mario [ Tue Aug 09, 2011 7:22 am ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

Leency wrote:
P.S. Копирование и вставка поломаны?

А они разве работали?

Author:  maximYCH [ Thu Aug 11, 2011 8:34 am ]
Post subject:  Re: Graphics editor <<ANIMAGE>>

День багрепертов Максимыча продолжается ;)
Впрочем этот баг относится не только к Animage, такое наблюдается везде.

Attachments:
animage.png
animage.png [ 60.07 KiB | Viewed 5922 times ]

Page 5 of 7 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/