Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Просмотр фото в киборе через немодальные окна

Страниц (2): « 1 [2]
 

11. Zireael - 10 Июля, 2019 - 05:05:59 - перейти к сообщению
 Цитата:
через win api выводить на диалог

Какой функцией?
12. 007wan - 10 Июля, 2019 - 09:24:11 - перейти к сообщению
Dantes3000 , ТЫ имеешь ввиду подогнать все картинки? не обязательно выводить все картинки. Можно одну и сделать кнопку типа "дальше"
13. Dantes3000 - 11 Июля, 2019 - 02:01:52 - перейти к сообщению
Zireael , STM_SETIMAGE.

Сейчас у меня только проблема с пропорциями. Диалог будет 800х600, картинка должна быть подогнана под этот размер.
14. Zireael - 11 Июля, 2019 - 03:18:44 - перейти к сообщению
 Цитата:
STM_SETIMAGE

Вроде как только с бмп работает.
 Цитата:
картинка должна быть подогнана под этот размер.

Добавить статику этот стиль:
CODE:
#define SS_REALSIZECONTROL 64

Размер статика нужно будет менять чтобы пропорции сохранялись.
Сжимает/растягивает также как visualwindow.
15. Kibor - 11 Июля, 2019 - 03:35:35 - перейти к сообщению
https://kibor-bot.com/compression.rar
Когда то написал dll для сжатия по ширине и высоте без большой потери качества картинки. Если надо.

2 алгоритма. Включать их первым параметром 0 или 1

CODE:
external(INT, "compression_image", "compression_image", "C\compression\Debug\compression.dll");//Получение указателя на функцию

//Память для источника и приемника должна быть одинаково выделена.
int P[1500][1000];//Отсюда берем исходное изображение
int S[1500][1000];//Сюда запишется сжатая картинка, которую выыедем на экран

//Загрузить изображение побольше.
//Например 1000 на 800
loadimage (#P[0][0], "C:\Image_0.bmp");//грузим с файла.
//screen (#P[0][0], 0, 0, 1000, 800, -1);//Можно так же делать просто скрин с помощью screen

int A_P=address(#P[0][0]);
int A_S=address(#S[0][0]);

/*
Параметры
1)
0 - сжатие без расчета среднего цвета (просто берется один из цветов)
могут пропадать отдельные пиксели
1 - сжатие с расчетом среднего цвета.

2) Адрес указателя на изображение источник

3) Число равное выделенной памяти по X

4) Число равное выделенной памяти по Y

5) Адрес указателя на изображение приемник

6) Процент сжатия 1-100
*/

//Сжатие 0 Выводим приемник
compression_image(0, A_P, 1500, 1000, A_S, 27);
visualwindow(0, 0, 0, imagewidth(#S[0][0]), imageheight(#S[0][0]), 10, 10 , 100, #S[0][0]);

//Сжатие 1 Выводим приемник
compression_image(1, A_P, 1500, 1000, A_S, 27);
visualwindow(1, 0, 0, imagewidth(#S[0][0]), imageheight(#S[0][0]), 220, 10 , 100, #S[0][0]);

//Сжатие Кибор Выводим источник
visualwindow(2, 0, 0, imagewidth(#P[0][0]), imageheight(#P[0][0]), 430, 10 , 27, #P[0][0]);

loop()sleep(10);
16. Zireael - 11 Июля, 2019 - 03:56:06 - перейти к сообщению
 Цитата:
для сжатия по ширине и высоте без большой потери качества картинки.

Прикольно. StretchBlt даже рядом не стоит с этим.
17. Budni - 11 Июля, 2019 - 23:05:24 - перейти к сообщению
 Dantes3000 пишет:
Не подходит. Надо сделать полностью в киборе
Поделись пожалуйста кодом, когда всё получится если это не сочтешь это за наглость :)
18. Zireael - 12 Июля, 2019 - 02:46:13 - перейти к сообщению
 Цитата:
Поделись пожалуйста кодом

Просмотр изображений на диалоге (Отобразить)

Длл из поста Kibor закинуть в папку с кибор.
Нет отключения вывода изображения перед закрытием диалога, так что может вылететь. Нужно чтобы баг с wm_close был исправлен.
19. Dantes3000 - 23 Июля, 2019 - 09:12:29 - перейти к сообщению
И как jpeg открыть то?
(Добавление)
Понял

Powered by ExBB FM 1.0 Final