Graphics editor <<ANIMAGE>>

Processing, playback of audio and video
  • рев. 6355
    Изменил алгоритм работы с командой undo. Вместо копирования буферов по цепочке просто сдвигаю указатели. Так получается быстрее и кода меньше, потому что легче указатель поменять чем весь буфер с изображением перегонять.
    Но перед рисованием всеравно буфер с изображением копируется, но так и было раньше.
    dunkaist wrote:There is encoding example. I didn't check if it works now, it is 3 years old.
    Это хорошо что есть пример, значит возможно в будущем будет сохранение в png.
  • Updated Animage.
    Code by IgorA.
    GUI by me.
    Attachments
    animage1.51.png
    animage1.51.png (24.72 KiB)
    Viewed 9130 times
    Из хаоса в космос
  • rev 6371
    добавил в меню группу Filters с поворотами изображения,
    также добавил выделение текущего масштаба для удобства пользования.

    Думаю что теперь animage уже не будет кандидатом на удаление из образа :P
  • rev 6379
    Исправил рамку для выделения, которая перестала стираться после рев. 6355. Сделал новый алгоритм, который рисует рамку для выделения сразу в области экрана, а не в область изображения.
    Но все еще нужно будет дорабатывать работу с командами Copy, Paste. Потому что они работают не так как нужно, а именно:
    1) перемещение рамки для выделения считается как событие редактирования файла, что не хорошо.
    2) копирование приводит к пропаданию рамки с экрана и для вставки изображения нужно рисовать рамку в нужном месте снова
    3) может еще что-то есть точно не знаю
  • rev 6741
    Сделано сохранение файлов в *.png . Можно также и в *.bmp сохранять, но по умолчанию поставлено *.png . Можно протестировать сохраняемые файлы в Windows, потому как я только внутри Колибри их пробовал открывать.
  • 1. Открываем файл из вложения в Animage
    2. Увеличение х8
    3. Цвет - Белый
    4. Инструмент - Заливка
    5. Нажимаем "залить" выше клюва http://prntscr.com/j94dxy

    => программа вылетает
    Attachments
    48.png
    48.png (2.98 KiB)
    Viewed 7929 times
    Из хаоса в космос
  • Запустил в отладчике:
    animage_240418.png
    animage_240418.png (16.26 KiB)
    Viewed 7899 times
    Вроди нашел функцию где вылетает:

    Code: Select all

    ; function <<<<<<GetColorOfPixel>>>>>>
    ; IN
    ; eax - pointer to picture
    ; ebx - picture size x
    ; esi - x coordinat of pixel
    ; edi - y coordinat of pixel
    ; OUT
    ; eax - color of pixel in coordinats (x,y)
    GetColorOfPixel:
    
      imul ebx,edi
      add ebx,esi
      lea ebx,[ebx+ebx*2]
      add eax,ebx
      mov ebx,[eax]
      and ebx,0xffffff
      mov eax,ebx
      ret
    Судя по всему в esi приходит не корректная координата по оси x = -1. Из-за этого не правильно вычисляется адрес в регистре eax и происходит вылет. Можно в функцию GetColorOfPixel внести проверку координаты и сделать аварийный выход выход из нее, но тогда возможно что не корректная координата вылезет еще где-нибудь. Потому наверное правильно будет найти места где координата становится не правильной и править там.
  • rev 7258
    добавил в функцию GetColorOfPixel проверку координаты x и аварийный выход если она меньше 0 или больше ширины изображения. Вылетов программы при заливке не стало.
  • Кастомный курсор нужно бы органичить областью рисования
    Attachments
    download.png
    download.png (26.43 KiB)
    Viewed 7840 times
    Из хаоса в космос
  • Есть неприятный баг. Видео https://youtu.be/A2-oKI-1-sI?t=677
    Суть: когда нажимаем на палитре http://prntscr.com/lg0mgg, то срабатывает сразу нажатие на холст.
    Из хаоса в космос
  • rev 8227
    перевел программу на новый макрос load_lib.mac
  • Leency wrote:Есть неприятный баг. Видео https://youtu.be/A2-oKI-1-sI?t=677
    Суть: когда нажимаем на палитре http://prntscr.com/lg0mgg, то срабатывает сразу нажатие на холст.
    rev 8271
    Перевел программу на использование ColorDialog, вместо выпадающей палитры. Теперь баг убран вместе с палитрой.
  • Who is online

    Users browsing this forum: No registered users and 1 guest