Page 1 of 1

EasyShot - Простой скриншотер

Posted: Fri Apr 20, 2018 1:26 pm
by Leency
EasyShot

Чтобы сделать скриншот в EasyShot:
1. укажите папку (не обязательно, по умолчанию /tmp0/1/)
2. делайте скрины одной кнопкой

Скрины нумеруются автоматически.
Спасибо Nicolas за функцию сохранения картинки, сам бы я ее на написал.
Спасибо IgorA за поддержку PNG.

Re: EasyShot - Простой скриншотер

Posted: Fri Apr 20, 2018 1:53 pm
by 0CodErr
Прикольно :)
Только существующий ассемблерный скриншотер SCRSHOOT всё равно функциональнее, да и размером поменьше 4184 байтов против 4690 у EasyShot.

Re: EasyShot - Простой скриншотер

Posted: Fri Apr 20, 2018 2:45 pm
by Leency
Я добавлю функций позже.

Для меня EasyShot удобнее, т.к. не нужно каждый раз указывать куда сохранять файл.
Картинка чекбокса весит. Много инитов box_lib.

Я чуток повыпиливал, все С-- программы должны стать чуточку легче.

Re: EasyShot - Простой скриншотер

Posted: Fri Apr 20, 2018 9:55 pm
by 0CodErr
Leency, не, я всё понимаю, конечно. Ты и кто-то там ещё старались.
Но я привёл размер потому что для img-сборки он всё-таки важен.
Leency wrote:Я добавлю функций позже.
Соответственно, размер увеличится ещё.
Просто для сравнения, в теме Delphi7 examples есть пример GetScreenImage http://board.kolibrios.org/viewtopic.ph ... 469#p69039 и в сжатом виде весит он всего каких-то 637 байтов.
Если добавить конвертацию в png и сохранение в файл — размер вряд ли превысит 2 Kb, а у тебя уже 4,5 Kb.

Re: EasyShot - Простой скриншотер

Posted: Fri Apr 20, 2018 10:44 pm
by tsdima
Leency wrote:Я чуток повыпиливал
По-моему, mousecfg поломался. По крайней мере у меня в эмуляторе не работает.
Spoiler:case evReDraw:
...
WriteText(mouse_frame.x + 110, mouse_frame.y + 45, 0x90, 0x2C343C, CHECK_MOUSE_2);
DrawMouseImage();
DrawControls();

Re: EasyShot - Простой скриншотер

Posted: Sat Apr 21, 2018 12:04 am
by Leency
tsdima
Спасибо, fixed.

0CodErr
Я уже объяснил почему так. Дополнительная логика слабо будет влиять на размер программы.

Re: EasyShot - Простой скриншотер

Posted: Sat Apr 21, 2018 12:31 am
by 0CodErr
Leency wrote:Я уже объяснил почему так.
Это?
Leency wrote:Картинка чекбокса весит. Много инитов box_lib.
Ну картинка пусть байтов 700, хотя можно и заменить на стандартный системный CheckBox.
Вон тот http://board.kolibrios.org/viewtopic.ph ... 315#p66855 скриншотер весит 4,90 КБ.
Но там есть ещё полноэкранный просмотр снимка.
Также там всё самописное, libimg вообще не используется.
С libimg размер должен быть ещё меньше.

Ты, кстати, зачем-то постоянно рисуешь какой-то дополнительный фрейм для EditBox-а.
Это случайно нельзя заменить на элемент Frame с Flags = FR_SUNKEN(см. скриншот под спойлером http://board.kolibrios.org/viewtopic.ph ... 494#p66494)?

Re: EasyShot - Простой скриншотер

Posted: Sat Apr 21, 2018 1:22 am
by Leency
Я уже потратил с час на поиски причины того что программа весит 9 Кб несжатая и 4,5 сжатая. Хотя example.c весит всего 650 байт. Кажется одного такого места нет, ну sprintf немного много весит. И да - бордеры и вообще библиотека UI.
Простые фреймы тут не подойдут.