Zireael |
Отправлено: 20 Марта, 2021 - 22:59:50
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Архив распаковать, длл закинуть в папку с кибор.
https://drive.google.com/file/d/...view?usp=sharing
CODE:external(INT, "visualwindow2", "visualwindow", "VisualWindow.dll");
external(INT, "textout2", "textout", "VisualWindow.dll");
external(INT, "draw_end", "draw_end", "VisualWindow.dll");
win w = window ("Program Manager", "Progman", -1); // окно, с которого выводить изображение
if(w)
{
visualwindow2(0, 0, 0, w.widthclient, w.heightclient, 200, 100, 30, formatwi(w));
textout2(0, 300, 300, "Нажать Z чтобы остановить скрипт", 24, rgb(0, 0, 255), rgb(0, 255, 0));
textout2(1, 400, 150, "Hello", 36, rgb(255, 0, 0), -1);
while(getkeystate(90)==0)sleep(10);
draw_end();
}
else messagebox("Окно не найдено");
CODE:external(INT, "ResizeImage", "ResizeImage", "VisualWindow.dll");
ResizeImage("C:\11111.bmp", "C:\qwerty123.jpeg", 50); // уменьшить изображение bmp на 50% и сохранить в формате jpeg
ResizeImage("C:\11111.bmp", "C:\qwerty123.png", 200); // увеличить изображение на 200% и сохранить в формате png
Функции длл (нужные подключить вначале скрипта):
visualwindow - вывод части изображения с указанного окна
textout - вывод текста
enablevisual - включить вывод с окна
disablevisual - отключить вывод с окна
enabletextout - включить вывод текста
disabletextout - отключить вывод текста
draw_on - включить вывод изображения и текста
draw_off - отключить вывод изображения и текста
draw_end - закончить вывод изображения и текста
ResizeImage - изменить размер или формат (bmp, jpeg, gif, tiff, png) изображения
Функции draw_on, draw_off, draw_end вызываются без параметров.
Функции enablevisual, disablevisual, enabletextout, disabletextout приинмают 1 параметр - порядковый номер изображения или текста.
CODE:disablevisual(1); // отключить visualwindow(1, ...)
enablevisual(1); // включить отключенный visualwindow(1, ...)
disabletextout(0); // отключить textout (0, ...)
enabletextout(0); // включить отключенный textout (0, ...)
Параметры функции visualwindow:
CODE:visualwindow2(0, 0, 0, w.widthclient, w.heightclient, 200, 100, 30, formatwi(w));
1 - номер изображения от 0 до 999.
2-4 - координты, с которых выводить изображение, левый верхний и правый нижний угол.
5-6 - позиция вывода, экранные координаты.
7 - масштаб вывода.
8 - хендл окна, с которого получать изображение.
CODE:textout2(0, 300, 300, "Text", 24, rgb(0, 0, 255), rgb(0, 255, 0));
Параметры функции textout:
1 - номер сообщения от 0 до 999.
2-3 - позиция вывода.
4 - текст.
5 - размер шрифта.
6 - цвет текста.
7 - цвет фона или -1 (без фона).
CODE:ResizeImage("C:\11111.bmp", "C:\qwerty123.jpeg", 50);
Параметры функции ResizeImage:
1 - путь к изображению.
2 - путь куда сохранить новое изображение.
3 - процент сжатия или увеличения изображения. |
|
|
Zireael |
Отправлено: 23 Марта, 2021 - 01:56:37
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Есть существенные отличия от старой версии draw?
Качество сжатия изображений значительно лучше.
Цитата: Иногда требуется что бы клик проходил сквозь картинку - это можно как-нибудь реализовать?
Клик проходит через картинку.
Цитата: И я думаю вы зря переименовали visualwindow и textout - теперь их можно спутать с оригинальными.
Назовите как удобно:
CODE:external(INT, "MyFunc", "visualwindow", "VisualWindow.dll");
// MyFunc(0, 0, 0, w.widthclient, w.heightclient, 200, 100, 30, formatwi(w)); |
|
|
Kutuz_off |
Отправлено: 23 Марта, 2021 - 10:47:25
|
Наблюдатель
Покинул форум
Сообщений всего: 47
Дата рег-ции: Окт. 2016
Репутация: 0
|
Спасибо за ответы. Хорошо, протестирую, в предыдущей версии draw картинка перекрывает окно, и клик не проходит сквозь нее. Удобнее, конечно, было бы в виде параметра вкл/выкл сквозные нажатия. А то оригинальный визуал мерцает, и его использовать как гибрид не мог, думал сделать через сендмаус с вычислением тех же координат под выводимой картинкой... но вот, вроде, и решение, вновь благодаря вам. Отпишусь. |
|
|
|