fill.sa
23.11.2021, 14:44
Я так понимаю от хваленого бмп отказались.
По моей памяти перевод иконореса с бмп на пнг заметно ускорил работу. Замеров я не делал, сугобо субьективное мнение.
Да и по замеру винраруса страничка на пнг знатно быстрее грузится ибо в пнг меньше даннвх загружать нужно.
VINRARUS
23.11.2021, 18:30
Цитата(fill.sa @ Сегодня, 17:44)
Я так понимаю от хваленого бмп отказались.
Нет.
Качество и скорость создания bmp неоспоримы!
Цитата(fill.sa @ Сегодня, 17:44)
По моей памяти перевод иконореса с бмп на пнг заметно ускорил работу.
Наоборот, по крайней мере на Z6.
Цитата(fill.sa @ Сегодня, 17:44)
Да и по замеру винраруса страничка на пнг знатно быстрее грузится ибо в пнг меньше даннвх загружать нужно.
Так всем понятно шо чем меньше файл тем быстрее его передача.
Но для начала же его сгенерировать нада, и тут PNG с треском отстаёт в сумарном времени получения скриншота.
Для кого мы тут псевдотаблички заполняли?
BMP: 0.681/0.256
JPG: 0.665/0.166
PNG: 2.131/0.484
fill.sa
23.11.2021, 20:38
Цитата(VINRARUS @ Сегодня, 19:30)
Но для начала же его сгенерировать нада, и тут PNG с треском отстаёт в сумарном времени получения скриншота.
Для кого мы тут псевдотаблички заполняли?
BMP: 0.681/0.256
JPG: 0.665/0.166
PNG: 2.131/0.484
Так понятно что на сжатие какое-то время тратится. Но это по мне мелочи.
Ты на конечный результат смотри, особенно в действительностях магикса.
Да и по открытию веб страници ты сам видешь что на пнг ты успееш 5 картинок открыть пока 1 бмп прогрузится. Вот и вся твоя скорость.
Я могу ехать 200Км/ч и останавливаться кажные 10 км на заправку и охладится.
А кто-то будет ехать 100км/ч и в конечном счете мы одинаково приедем.
Я же говорю по ощущениям иконрез на пнг заметно быстрее, к сожалению проверить это никак, только по ощущениям. Ибо проверить можно только отдельные вещи в виде скорости генерации картинки, но не как не замерить весь процесс.
Если придумаешь как замерить конечный результат, с радостью почитаю конечные цифры.
VINRARUS
23.11.2021, 21:42
Цитата(fill.sa @ Вчера, 23:38)
Ты на конечный результат смотри, особенно в действительностях магикса.
Цыфры в цытате и есть конечный результат.
Если не можеш сам их итерпретировать — я помогу:
2.131÷0.681=в 3,13 раз скриншот BMP быстрее в браузере появится чем PNG, при Wi-FI подключении и мин. частоте ЦП (при 740 МГц разница уменьшается до 2х раз).
Цитата(fill.sa @ Вчера, 23:38)
Я же говорю по ощущениям иконрез на пнг заметно быстрее, к сожалению проверить это никак, только по ощущениям. Ибо проверить можно только отдельные вещи в виде скорости генерации картинки, но не как не замерить весь процесс.
По моим ощущениям bmp скин шустрее, но уменя не тормозина — на тормозине экономия RAM решает.
EXL
23.11.2021, 21:53
VINRARUS, Очень странно, ведь на эмуляторе всё работает.
А если так сделать, будет эффект?
Код
cat /dev/fb/0 > screen.dump
./fbgrab screen.dump screen.bmp
Если нет, прицепи
screen.dump для изучения.
VINRARUS
23.11.2021, 22:18
Цитата(EXL @ Сегодня, 0:53)
Если нет, прицепи screen.dump для изучения.
Изучай.
Добавлено позже (24.11.2021, 2:03):EXL, кстати zgrab при срабатывании закрывает всплывающие менюшки и нажатия кнопок подтупливают.
EXL
25.11.2021, 4:26
Цитата(VINRARUS @ Вчера, 5:18)
EXL, кстати zgrab при срабатывании закрывает всплывающие менюшки и нажатия кнопок подтупливают.
Я нашёл ещё один способ захвата картинки с экрана через Qt, без хитрости в виде создания какого-либо виджета поверх. Возможно сейчас менюшки закрываться не будут, а сама скриншотилка будет отрабатывать ещё быстрее. У меня на эмуляторе работает, проверь на реальном девайсе:
Код
// dgrab.cpp
#include <qapplication.h>
#include <qpixmap.h>
#include <qwidget.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc >= 2 && argc <= 3) {
QApplication app(argc, argv);
QPixmap::setDefaultOptimization(QPixmap::BestOptim);
QPixmap fullScreenPixmap = QPixmap::grabWindow(QApplication::desktop()->winId());
if (argc == 2)
fullScreenPixmap.save(argv[1], QStringList::split(".", argv[1])[1].upper());
else
fullScreenPixmap.save(argv[1], QStringList::split(".", argv[1])[1].upper(), QString(argv[2]).toInt());
} else
fprintf(
stderr,
"Usage:\n"
"\tdgrab screenshot.<format>\n\n"
"Example:\n"
"\tdgrab screenshot.png\n"
"\tdgrab screenshot.bmp\n"
"\tdgrab screenshot.jpeg 100\n"
"\tdgrab screenshot.jpeg 25\n"
);
return 0;
}
Собирать так:
Код
# Motorola ZN5
/arm-eabi/bin/arm-linux-gnueabi-g++ -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -I/arm-eabi/lib/qt-zn5/include -I/arm-eabi/lib/ezx-zn5/include -I/arm-eabi/arm-linux-gnueabi/include dgrab.cpp -o dgrab -Wl,-rpath-link,/arm-eabi/lib/ezx-zn5/lib -L/arm-eabi/lib/ezx-zn5/lib -lqte-mt
/arm-eabi/bin/arm-linux-gnueabi-strip -s dgrab
# MotoMAGX Emulator
/opt/toolchains/motomagx/emulator/bin/i686-mot-linux-gnu-g++ -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -I/opt/toolchains/motomagx/emulator/include dgrab.cpp -o dgrab -L/opt/toolchains/motomagx/emulator/lib -lqte-mt
/opt/toolchains/motomagx/emulator/bin/i686-mot-linux-gnu-strip -s dgrab
Запускать аналогично
zgrab, а вот с
fbgrab пока не разбирался. Вижу по размеру файла дампа, что чтение не происходит, что странно. Может быть из-за прав такое...? На
root, а не
ezx запускать пробовал? Нужно разбираться.
Прикреплённые файлы:
VINRARUS
25.11.2021, 4:54
Цитата(EXL @ Сегодня, 7:26)
Возможно сейчас менюшки закрываться не будут, а сама скриншотилка будет отрабатывать ещё быстрее. У меня на эмуляторе работает, проверь на реальном девайсе:
Да, так намного лучше!
Цитата(EXL @ Сегодня, 7:26)
На root, а не ezx запускать пробовал?
Ну я ж не убунтьоныш, шобы рута бояться.
В телнете сразу рут права все.
EXL
25.11.2021, 15:56
VINRARUS,
В общем собрал все исходники утилит для снятия скриншотов на GitHub:
https://github.com/EXL/MagxScreenshot/Цитата(VINRARUS @ Сегодня, 11:54)
Ну я ж не убунтьоныш, шобы рута бояться. laugh.gif В телнете сразу рут права все.
Наверное пофиксил, но так и не понял в чём там дело и почему
fread() и
fopen() не работают, а
mmap() и
open() работают нормально. Правда фиг его знает как это скажется на производительности.
Добавил ещё
jgrab, которая делает JPEG-скриншоты, пробуй:
Код
./fbgrab /dev/fb/0 screenshot.bmp
./jgrab /dev/fb/0 screenshot.jpg 100
Теперь "/dev/fb/0" должен нормально сниматься, а ещё можешь на "/dev/fb/1" при врубленной камере или запущенном на SDL HW приложении проверить, есть ли там чего или всё так же чёрный экран.
Прикреплённые файлы:
VINRARUS
25.11.2021, 21:21
EXL, вот теперь шыкарно!
Новые fbgrab и jgrab:
Код
# cd /tmp
# echo 133 > /sys/mpm/op
# /home/zgrab.sh
+----------+----------+----------+----------+----------+
| bmp | jpg10 | jpg50 | jpg90 | jpg100 |
+----------+----------+----------+----------+----------+
| 0m 0.25s | 0m 0.20s | 0m 0.24s | 0m 0.22s | 0m 0.28s |
| 0m 0.19s | 0m 0.18s | 0m 0.18s | 0m 0.22s | 0m 0.23s |
| 0m 0.02s | 0m 0.02s | 0m 0.03s | 0m 0.01s | 0m 0.04s |
+----------+----------+----------+----------+----------+
| 0m 0.20s | 0m 0.22s | 0m 0.21s | 0m 0.25s | 0m 0.27s |
| 0m 0.19s | 0m 0.19s | 0m 0.19s | 0m 0.23s | 0m 0.27s |
| 0m 0.01s | 0m 0.01s | 0m 0.02s | 0m 0.01s | 0m 0.00s |
+----------+----------+----------+----------+----------+
| 0m 0.20s | 0m 0.23s | 0m 0.20s | 0m 0.28s | 0m 0.30s |
| 0m 0.18s | 0m 0.20s | 0m 0.20s | 0m 0.23s | 0m 0.26s |
| 0m 0.02s | 0m 0.01s | 0m 0.01s | 0m 0.00s | 0m 0.01s |
+----------+----------+----------+----------+----------+
| 0m 0.23s | 0m 0.20s | 0m 0.23s | 0m 0.23s | 0m 0.28s |
| 0m 0.20s | 0m 0.19s | 0m 0.21s | 0m 0.21s | 0m 0.27s |
| 0m 0.01s | 0m 0.00s | 0m 0.01s | 0m 0.02s | 0m 0.01s |
+----------+----------+----------+----------+----------+
| 0m 0.22s | 0m 0.19s | 0m 0.26s | 0m 0.25s | 0m 0.30s |
| 0m 0.19s | 0m 0.19s | 0m 0.21s | 0m 0.22s | 0m 0.27s |
| 0m 0.02s | 0m 0.01s | 0m 0.00s | 0m 0.01s | 0m 0.01s |
+----------+----------+----------+----------+----------+
# echo 740 > /sys/mpm/op
# /home/zgrab.sh
+----------+----------+----------+----------+----------+
| bmp | jpg10 | jpg50 | jpg90 | jpg100 |
+----------+----------+----------+----------+----------+
| 0m 0.04s | 0m 0.04s | 0m 0.04s | 0m 0.05s | 0m 0.05s |
| 0m 0.04s | 0m 0.05s | 0m 0.05s | 0m 0.04s | 0m 0.05s |
| 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.01s | 0m 0.01s |
+----------+----------+----------+----------+----------+
| 0m 0.04s | 0m 0.04s | 0m 0.04s | 0m 0.05s | 0m 0.06s |
| 0m 0.03s | 0m 0.04s | 0m 0.04s | 0m 0.05s | 0m 0.06s |
| 0m 0.01s | 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.00s |
+----------+----------+----------+----------+----------+
| 0m 0.04s | 0m 0.04s | 0m 0.05s | 0m 0.05s | 0m 0.06s |
| 0m 0.04s | 0m 0.03s | 0m 0.04s | 0m 0.05s | 0m 0.05s |
| 0m 0.00s | 0m 0.01s | 0m 0.00s | 0m 0.00s | 0m 0.01s |
+----------+----------+----------+----------+----------+
| 0m 0.04s | 0m 0.05s | 0m 0.04s | 0m 0.05s | 0m 0.05s |
| 0m 0.04s | 0m 0.05s | 0m 0.04s | 0m 0.05s | 0m 0.05s |
| 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.01s |
+----------+----------+----------+----------+----------+
| 0m 0.04s | 0m 0.04s | 0m 0.04s | 0m 0.05s | 0m 0.07s |
| 0m 0.03s | 0m 0.04s | 0m 0.04s | 0m 0.05s | 0m 0.06s |
| 0m 0.01s | 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.00s |
+----------+----------+----------+----------+----------+
Цитата(EXL @ Сегодня, 18:56)
а ещё можешь на "/dev/fb/1" при врубленной камере
Работает в камере!
К стати, при закрытии камеры на /dev/fb/1 остаётся останний кадр висеть.
EXL
26.11.2021, 5:45
VINRARUS, Отлично, что для камеры тоже заработало. А для игр на SDL HW это тоже работает? Там наверное должен этот же буфер использоваться. Проверь ради интереса.
Немного оптимизировал код в
jgrab, обнови у себя нужные исполняемые файлы. Ещё добавил утилиту
pgrab по типу
fbgrab и
jgrab, но для снятия скриншотов в PNG, уровень компрессии регулируется в пределах 0-9:
Код
./pgrab /dev/fb/0 screenshot1.png 0
./pgrab /dev/fb/0 screenshot2.png 2
./pgrab /dev/fb/0 screenshot3.png 9
Бенчмарк на эмуляторе показал следующую картину, в самом конце размер файла в байтах:
Код
for i in $(seq 1 5); do busybox time ./pgrab /dev/fb/0 scr.png 9; sleep 1; rm scr.png; done;
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
| PNG 0 | PNG 1 | PNG 2 | PNG 3 | PNG 4 | PNG 5 | PNG 6 | PNG 7 | PNG 8 | PNG 9 |
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
| 0m 0.02s | 0m 0.06s | 0m 0.05s | 0m 0.07s | 0m 0.09s | 0m 0.08s | 0m 0.12s | 0m 0.14s | 0m 0.27s | 0m 0.50s |
| 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.01s | 0m 0.00s | 0m 0.01s | 0m 0.02s | 0m 0.04s | 0m 0.03s | 0m 0.03s |
| 0m 0.00s | 0m 0.04s | 0m 0.02s | 0m 0.03s | 0m 0.06s | 0m 0.06s | 0m 0.09s | 0m 0.08s | 0m 0.22s | 0m 0.43s |
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
| 0m 0.07s | 0m 0.04s | 0m 0.06s | 0m 0.06s | 0m 0.07s | 0m 0.09s | 0m 0.12s | 0m 0.15s | 0m 0.31s | 0m 0.43s |
| 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.01s | 0m 0.00s | 0m 0.00s | 0m 0.01s | 0m 0.01s | 0m 0.00s | 0m 0.04s |
| 0m 0.06s | 0m 0.00s | 0m 0.05s | 0m 0.04s | 0m 0.02s | 0m 0.09s | 0m 0.09s | 0m 0.12s | 0m 0.29s | 0m 0.35s |
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
| 0m 0.05s | 0m 0.08s | 0m 0.04s | 0m 0.09s | 0m 0.10s | 0m 0.10s | 0m 0.13s | 0m 0.14s | 0m 0.34s | 0m 0.50s |
| 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.01s | 0m 0.01s | 0m 0.02s | 0m 0.00s | 0m 0.02s | 0m 0.00s | 0m 0.08s |
| 0m 0.05s | 0m 0.06s | 0m 0.02s | 0m 0.06s | 0m 0.07s | 0m 0.08s | 0m 0.11s | 0m 0.11s | 0m 0.31s | 0m 0.40s |
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
| 0m 0.03s | 0m 0.07s | 0m 0.08s | 0m 0.09s | 0m 0.09s | 0m 0.09s | 0m 0.12s | 0m 0.10s | 0m 0.33s | 0m 0.52s |
| 0m 0.00s | 0m 0.01s | 0m 0.00s | 0m 0.00s | 0m 0.01s | 0m 0.00s | 0m 0.00s | 0m 0.02s | 0m 0.06s | 0m 0.02s |
| 0m 0.03s | 0m 0.05s | 0m 0.06s | 0m 0.07s | 0m 0.06s | 0m 0.09s | 0m 0.11s | 0m 0.07s | 0m 0.24s | 0m 0.46s |
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
| 0m 0.03s | 0m 0.06s | 0m 0.08s | 0m 0.08s | 0m 0.10s | 0m 0.11s | 0m 0.12s | 0m 0.14s | 0m 0.32s | 0m 0.49s |
| 0m 0.00s | 0m 0.01s | 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.00s | 0m 0.07s | 0m 0.03s |
| 0m 0.02s | 0m 0.04s | 0m 0.07s | 0m 0.07s | 0m 0.09s | 0m 0.10s | 0m 0.11s | 0m 0.13s | 0m 0.22s | 0m 0.41s |
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
| 231154 | 68689 | 66579 | 63552 | 60778 | 59231 | 58129 | 57665 | 56473 | 56033 |
+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+
Как видно, время снятия скриншота с повышением уровня компрессии возрастает, но не особо быстро. Исключения последние два уровня 8 и 9. Даже минимальный уровень сжатия 1 неплохо жмёт картинку и при этом не особо прожорлив. Возможно следует попробовать заюзать его вместо JPEG, но нужно смотреть как оно на реальном устройстве будет сжиматься, там разница может быть более драматическая.
Если будешь в Web-сервер встраивать всё это, не забудь сделать снятие скриншота именно в PNG-формате, например, по отдельной кнопке. Сделать именно lossless скриншот бывает очень полезно.
Прикреплённые файлы:
Unreal_man
26.11.2021, 17:01
Пнг скриншоты на телефоне это зло, у нас просмотрщик кривой по части открытия пнг. Лучше джипег.
VINRARUS
26.11.2021, 17:20
Unreal_man, а оно не для просмотра на телефоне в даном случае.
Добавлено позже (26.11.2021, 20:21):... если конешно мова не про управление зиной чирез другую зину.
EXL
27.11.2021, 5:30
VINRARUS, Ага, это удобно для публикации постов со скриншотами на форум в первую очередь
VINRARUS
27.11.2021, 10:46
Цитата(EXL @ Вчера, 8:45)
Ещё добавил утилиту pgrab по типу fbgrab и jgrab, но для снятия скриншотов в PNG, уровень компрессии регулируется в пределах 0-9
А шо у неё с размером случилось, шо в 10 раз больше чем другие?
EXL
27.11.2021, 11:21
VINRARUS,
Причина этого как всегда обрезанная Qt-библиотека у ZN5. Например её сравнение с той, что у VE66 по части PNG-функций:
Код
$ cd /arm-eabi/lib/ezx-zn5/lib/
$ readelf -s -w libqte-mt.so.2.3.8 | grep -i png_ | c++filt
readelf: libqte-mt.so.2.3.8: warning: local symbol 465 found at index >= .dynsym's sh_info value of 10
236: 416c6870 92 func global default 11 png_error@@version
520: 416cadf4 16 func global default 11 png_set_strip_16@@version
624: 416c5d90 144 func global default 11 png_sig_cmp@@version
656: 416c8fd0 620 func global default 11 png_create_read_struct@@version
1032: 416cabb0 136 func global default 11 png_set_read_fn@@version
1066: 416d4f58 32 func global default 11 png_set_packing@@version
1155: 416c64b0 8 func global default 11 png_get_io_ptr@@version
1726: 416c6914 28 func global default 11 png_get_valid@@version
2400: 416c71e0 72 func global default 11 png_get_plte@@version
2631: 416c6f1c 260 func global default 11 png_get_ihdr@@version
3005: 416c941c 1620 func global default 11 png_read_info@@version
3207: 416ca840 192 func global default 11 png_destroy_read_struct@@version
3329: 416c9ff8 100 func global default 11 png_read_image@@version
3386: 416c72e4 132 func global default 11 png_get_trns@@version
3439: 416c5f14 56 func global default 11 png_create_info_struct@@version
3962: 416c68fc 16 func global default 11 png_set_error_fn@@version
3989: 416ca05c 1360 func global default 11 png_read_end@@version
$ cd /arm-eabi/lib/ezx-ve66/lib/
$ readelf -s -w libqte-mt.so.2.3.8 | grep -i png_write_ | c++filt
153: 41791a68 72 func global default 10 png_write_gama_fixed
585: 41792898 288 func global default 10 png_write_iccp
668: 41791ab0 96 func global default 10 png_write_srgb
989: 41792e34 252 func global default 10 png_write_scal
1207: 417914c8 960 func global default 10 png_write_ihdr
1258: 417929b8 220 func global default 10 png_write_text
1655: 41790f18 52 func global default 10 png_write_chunk_end
1660: 41791c04 920 func global default 10 png_write_chrm
2162: 41791f9c 496 func global default 10 png_write_chrm_fixed
2316: 417930a8 480 func global default 10 png_write_start_row
2532: 41792a94 292 func global default 10 png_write_ztxt
2536: 41791888 224 func global default 10 png_write_plte
2616: 4178fb10 292 func global default 10 png_write_init_2
2940: 41792298 228 func global default 10 png_write_bkgd
3095: 41791b10 244 func global default 10 png_write_sbit
3435: 417937a8 252 func global default 10 png_write_filtered_row
3960: 417926dc 444 func global default 10 png_write_splt
3999: 417938a4 3276 func global default 10 png_write_find_filter
4089: 4178fee8 64 func global default 10 png_write_rows
5437: 4178eea0 528 func global default 10 png_write_info_before_plte
5642: 4178fc64 540 func global default 10 png_write_row
5908: 4178f0b0 908 func global default 10 png_write_info
5991: 41791968 76 func global default 10 png_write_idat
6799: 41790f4c 52 func global default 10 png_write_chunk_data
6909: 41792fe0 200 func global default 10 png_write_time
6918: 41790fe0 52 func global default 10 png_write_chunk
7050: 41790f80 96 func global default 10 png_write_chunk_start
7089: 4179237c 172 func global default 10 png_write_hist
7120: 41793288 576 func global default 10 png_write_finish_row
7240: 417919b4 68 func global default 10 png_write_iend
7328: 4178f43c 452 func global default 10 png_write_end
7340: 41790538 284 func global default 10 png_write_png
7709: 41792c68 460 func global default 10 png_write_pcal
8256: 41792bb8 176 func global default 10 png_write_offs
8510: 417919f8 112 func global default 10 png_write_gama
8660: 41790014 260 func global default 10 png_write_destroy
9198: 4178fe80 104 func global default 10 png_write_image
9890: 4178ff38 220 func global default 10 png_write_flush
9954: 41792f30 176 func global default 10 png_write_phys
10183: 41791014 144 func global default 10 png_write_sig
10542: 4179218c 268 func global default 10 png_write_trns
10910: 4178fc34 48 func global default 10 png_write_init
10947: 4178ed38 60 func global default 10 png_write_data
Как видно, у ZN5 библиотека Qt может только читать PNG изображения. Не знаю где там в прошивке ZN5 код сохранения PNG-изображений, возможно в самой либе Qt собственная внутренняя приватная реализация этой функциональности, поэтому приходится этот код таскать с собой и линковать его статически. Что, конечно, увеличивает размер исполняемого файла на десятки килобайт.
Поищи, есть ли
libpng.so где-нибудь в
/lib, например?
VINRARUS
27.11.2021, 11:56
Цитата(EXL @ Сегодня, 14:21)
Не знаю где там в прошивке ZN5 код сохранения PNG-изображений
А может его и нет, ведь сохранять в png это так не по американски...
Цитата(EXL @ Сегодня, 14:21)
Поищи, есть ли libpng.so где-нибудь в /lib, например?
Нету.
EXL
27.11.2021, 12:04
Цитата(VINRARUS @ Сегодня, 18:56)
А может его и нет, ведь сохранять в png это так не по американски... no2.gif
Хех, но Qt ведь как-то сохраняет PNG через тот же
dgrab и
zgrab?!
А это значит что где-то всё-таки нужный код есть, но только он хорошо прикопан. Либо вообще какая-то внутренняя реализация в Qt мимо libpng. И кстати эта либа примерно так же статически вкомпилена в
libqte-mt.so.2 разных телефонов. Просто в случае с ZN5 в каком-то обрезанном варианте.
VINRARUS
27.11.2021, 12:27
Цитата(EXL @ Вчера, 8:45)
А для игр на SDL HW это тоже работает? Там наверное должен этот же буфер использоваться. Проверь ради интереса.
на /dev/fb/1 висит последний кадр камеры
А на /dev/fb/0 такие картинки:
EXL
27.11.2021, 14:25
VINRARUS, Понял, спасибо за тесты.
Цитата(VINRARUS @ Сегодня, 19:27)
А на /dev/fb/0 такие картинки:
Примерно понял почему. Там в SDL видимо переводится видео режим с 18 bpp на 16 bpp или какой-то другой, поэтому такие вот артефакты. Может быть когда-нибудь сделаю снятие картинки в режиме 16 bpp, но пока руки до этого не доходят.
Кстати, вот отличия в качестве картинки на 16-bit'ах (RGB565) и 18-bit'ах (RGB666). Лично я эту разницу немного вижу.