Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Jun 19, 2019 10:14 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 101 posts ]  Go to page Previous 13 4 5 6 7
Author Message
PostPosted: Thu Mar 17, 2016 5:35 pm 
Offline
Mentor
User avatar

Joined: Mon Oct 19, 2009 10:58 am
Posts: 420
libimg exports img.formats_table:
Code:
align 4
img.formats_table:
  .bmp  dd LIBIMG_FORMAT_BMP,  img.is.bmp,  img.decode.bmp,     img.encode.bmp, 1 + (1 SHL Image.bpp24) + (1 SHL Image.bpp32)
  .ico  dd LIBIMG_FORMAT_ICO,  img.is.ico,  img.decode.ico_cur, img.encode.ico, 0
  .cur  dd LIBIMG_FORMAT_CUR,  img.is.cur,  img.decode.ico_cur, img.encode.cur, 0
  .gif  dd LIBIMG_FORMAT_GIF,  img.is.gif,  img.decode.gif,     img.encode.gif, 0
  .png  dd LIBIMG_FORMAT_PNG,  img.is.png,  img.decode.png,     img.encode.png, 0
  .jpg  dd LIBIMG_FORMAT_JPEG, img.is.jpg,  img.decode.jpg,     img.encode.jpg, 0
  .tga  dd LIBIMG_FORMAT_TGA,  img.is.tga,  img.decode.tga,     img.encode.tga, 0
  .pcx  dd LIBIMG_FORMAT_PCX,  img.is.pcx,  img.decode.pcx,     img.encode.pcx, 0
  .xcf  dd LIBIMG_FORMAT_XCF,  img.is.xcf,  img.decode.xcf,     img.encode.xcf, 0
  .tiff dd LIBIMG_FORMAT_TIFF, img.is.tiff, img.decode.tiff,    img.encode.tiff,0
  .pnm  dd LIBIMG_FORMAT_PNM,  img.is.pnm,  img.decode.pnm,     img.encode.pnm, 1 + (1 SHL Image.bpp1) + (1 SHL Image.bpp8g) + (1 SHL Image.bpp24)
  .wbmp dd LIBIMG_FORMAT_WBMP, img.is.wbmp, img.decode.wbmp,    img.encode.wbmp,0
  .xbm  dd LIBIMG_FORMAT_XBM,  img.is.xbm,  img.decode.xbm,     img.encode.xbm, 0
  .z80  dd LIBIMG_FORMAT_Z80,  img.is.z80,  img.decode.z80,     img.encode.z80, 0 ;this must be the last entry as there are no signatures in z80 screens at all
        dd 0


The last field is capabilities:
Code:
struct FormatsTableEntry
  Format_id     dd ?
  Is            dd ?
  Decode        dd ?
  Encode        dd ?
  Capabilities  dd ?
ends


LSb of capabilities means encoding is supported. Bit N set means that encoding supported for pixel format where Image.bpp* = N.

There is encoding example. I didn't check if it works now, it is 3 years old.


Top
   
PostPosted: Thu Mar 17, 2016 10:17 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
рев. 6355
Изменил алгоритм работы с командой undo. Вместо копирования буферов по цепочке просто сдвигаю указатели. Так получается быстрее и кода меньше, потому что легче указатель поменять чем весь буфер с изображением перегонять.
Но перед рисованием всеравно буфер с изображением копируется, но так и было раньше.
dunkaist wrote:
There is encoding example. I didn't check if it works now, it is 3 years old.

Это хорошо что есть пример, значит возможно в будущем будет сохранение в png.


Top
   
PostPosted: Thu Mar 24, 2016 3:04 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5052
Updated Animage.
Code by IgorA.
GUI by me.


Attachments:
animage1.51.png
animage1.51.png [ 24.72 KiB | Viewed 2475 times ]

_________________
Через тернии к звездам
Top
   
PostPosted: Thu Mar 24, 2016 8:10 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
rev 6371
добавил в меню группу Filters с поворотами изображения,
также добавил выделение текущего масштаба для удобства пользования.

Думаю что теперь animage уже не будет кандидатом на удаление из образа :P


Top
   
PostPosted: Sat Mar 26, 2016 10:25 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
rev 6379
Исправил рамку для выделения, которая перестала стираться после рев. 6355. Сделал новый алгоритм, который рисует рамку для выделения сразу в области экрана, а не в область изображения.
Но все еще нужно будет дорабатывать работу с командами Copy, Paste. Потому что они работают не так как нужно, а именно:
1) перемещение рамки для выделения считается как событие редактирования файла, что не хорошо.
2) копирование приводит к пропаданию рамки с экрана и для вставки изображения нужно рисовать рамку в нужном месте снова
3) может еще что-то есть точно не знаю


Top
   
PostPosted: Wed Nov 23, 2016 12:30 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
rev 6741
Сделано сохранение файлов в *.png . Можно также и в *.bmp сохранять, но по умолчанию поставлено *.png . Можно протестировать сохраняемые файлы в Windows, потому как я только внутри Колибри их пробовал открывать.


Top
   
PostPosted: Mon Apr 23, 2018 9:15 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5052
1. Открываем файл из вложения в Animage
2. Увеличение х8
3. Цвет - Белый
4. Инструмент - Заливка
5. Нажимаем "залить" выше клюва http://prntscr.com/j94dxy

=> программа вылетает


Attachments:
48.png
48.png [ 2.98 KiB | Viewed 1274 times ]

_________________
Через тернии к звездам
Top
   
PostPosted: Tue Apr 24, 2018 11:03 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Запустил в отладчике:
Attachment:
animage_240418.png
animage_240418.png [ 16.26 KiB | Viewed 1244 times ]

Вроди нашел функцию где вылетает:
Code:
; 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 внести проверку координаты и сделать аварийный выход выход из нее, но тогда возможно что не корректная координата вылезет еще где-нибудь. Потому наверное правильно будет найти места где координата становится не правильной и править там.


Top
   
PostPosted: Wed Apr 25, 2018 9:18 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
rev 7258
добавил в функцию GetColorOfPixel проверку координаты x и аварийный выход если она меньше 0 или больше ширины изображения. Вылетов программы при заливке не стало.


Top
   
PostPosted: Thu May 03, 2018 4:48 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5052
Кастомный курсор нужно бы органичить областью рисования


Attachments:
download.png
download.png [ 26.43 KiB | Viewed 1185 times ]

_________________
Через тернии к звездам
Top
   
PostPosted: Thu Nov 08, 2018 10:28 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5052
Есть неприятный баг. Видео https://youtu.be/A2-oKI-1-sI?t=677
Суть: когда нажимаем на палитре http://prntscr.com/lg0mgg, то срабатывает сразу нажатие на холст.

_________________
Через тернии к звездам


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 101 posts ]  Go to page Previous 13 4 5 6 7

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited