Боты и читы. Программируемый автокликер.


Визуальное создание ботов в Кибор

 Помощь      Поиск      Пользователи

 

Главная     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Получение скриншотов, сохранение скриншотов и изображений с памяти в BMP, JPG и PNG
Kibor
Отправлено: 12 Августа, 2013 - 04:24:50
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 4744
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 169
Карма 26




Эта версия получила функции получения скриншотов, сохранение скриншотов и загруженных в память программы изображений на диск в виде .bmp, JPG и PNG

screen - Делает скрин окна и записывает его в двухмерный массив int. После этого этот массив можно использовать в функции findimage

Синтаксис:
CODE:
int a[200][150];//Выделяем память. Выделить можно больше, с запасом, но не меньше. Если выделить меньше размеров скрина вернет ошибку.
screen (#a[0][0], старт_X, старт_Y, финиш_X, финиш_Y, w);


Первый параметр указатель на двухмерный массив int в который запишется изображение
Последний параметр w - указатель на окно. Если -1 скрин делается в экранных координатах

Функция возвращает:
1 при успехе
-1 если размер выделеного массава (первый столбец) меньше чем разница между (финиш_X-старт_X)
-2 если размер выделеного массава (второй столбец) меньше чем разница между (финиш_Y-старт_Y)

==============================================================================================================

savescreen - Делает скрин окна и сохраняет его на диск файлом .bmp

Синтаксис:
CODE:
savescreen("D:\11111.bmp", старт_X, старт_Y, финиш_X, финиш_Y, w);


Первый параметр string, путь к сохраненному файлу
Последний параметр w - указатель на окно. Если -1 скрин делается в экранных координатах

Можно сохранять в JPG и PNG
CODE:
savescreen(JPG, "D:\11111.jpg", старт_X, старт_Y, финиш_X, финиш_Y, w);
savescreen(PNG, "D:\11111.png", старт_X, старт_Y, финиш_X, финиш_Y, w);

Функция возвращает:
1 при успехе
0 если невозможно сохранить файл


==============================================================================================================

saveimage - сохраняет на диск файлом .bmp загруженный ранее или созданный программно двухмерный массив int в котором хранится изображение

Синтаксис:
CODE:
saveimage(#a[0][0], "D:\11111.bmp");

Можно сохранять в JPG и PNG
CODE:
saveimage(JPG, #a[0][0], "D:\11111.jpg");
saveimage(PNG, #a[0][0], "D:\11111.png");



Первый параметр указатель на двухмерный массив int в котором хранится изображение
Второй параметр string, путь к сохраненному файлу

Функция возвращает:
1 при успехе
0 если невозможно сохранить файл
 
 Top
Andrew
Отправлено: 12 Августа, 2013 - 04:28:09
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9
Карма 5




Kibor , вот это здорово Подшучивать, дразнить
Недавно думал о скрипте,который делал бы гиф анимации, как раз этой функции и не хватало. Спасибо.
 
 Top
Kibor
Отправлено: 12 Августа, 2013 - 04:33:09
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 4744
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 169
Карма 26




Всегда пожалуйста Улыбка
 
 Top
Andrew
Отправлено: 12 Августа, 2013 - 22:28:13
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9
Карма 5




Kibor , я уже все перепробовал, как сделать что бы каждый последующий путь был новым.Я много что пробовал, думал что то типо такого может?
CODE:
int n;
n=1;

a:

savescreen("C:\savescreen\"n".bmp", 0, 0, 400, 300, w);
sleep(500);

n++;

goto a;
 
 Top
Kibor
Отправлено: 12 Августа, 2013 - 22:39:13
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 4744
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 169
Карма 26




 Andrew пишет:
уже все перепробовал, как сделать что бы каждый последующий путь был новым.Я много что пробовал, думал что то типо такого может?

CODE:
int n;
n=1;

a:

savescreen("C:\savescreen\"n".bmp", 0, 0, 400, 300, w);
sleep(500);

n++;

goto a;


Преобразование int к string
Этот код будет шлепать 1000 рисунков по 2 на секунду или пока не остановишь.

CODE:
int n=0;
a:if (n<1000)
{
savescreen("C:\savescreen\skreen"+format(n)+".bmp", 0, 0, 400, 300, -1);
sleep(500);
n++;
goto a;
}
 
 Top
kunni
Отправлено: 15 Марта, 2016 - 12:08:53
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2014  
Репутация: 2
Карма 0




Есть вопрос.
Как можно сделать, чтобы в уже загруженное в массив изображение дописать новое (меньшее по размеру) в определенную точку, которое перепишет перекрываемые пиксели?
Чисто интуитивно попробовал так, но, конечно же, выдало ошибку (кстати, программа вылетела полностью)
CODE:

int график[978][616];

loadimage (#график[0][0], "ПУТЬ\1.bmp");

loadimage (#график[15][15], "ПУТЬ\2.bmp");//думал, запишет начиная с 15 пикселя маленькое изображение размером 20 на 20

saveimage (PNG, #график[0][0], ПУТЬ\3.png");

(Отредактировано автором: 15 Марта, 2016 - 12:09:18)

 
 Top
Kibor
Отправлено: 15 Марта, 2016 - 12:16:28
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 4744
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 169
Карма 26




Надо использовать массивы..
Реализация массивов изображений в функциях loadimage, findimage, saveimage.
Они специально сделаны для этого.

Можно конечно
 kunni пишет:
в уже загруженное в массив изображение дописать новое (меньшее по размеру) в определенную точку

но не так, а руками создать алгоритм чтения с файла и запись в существующий загруженный массив.
а зачем?
 
 Top
kunni
Отправлено: 16 Марта, 2016 - 08:49:52
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2014  
Репутация: 2
Карма 0




 Kibor пишет:
но не так, а руками создать алгоритм чтения с файла и запись в существующий загруженный массив.
а зачем?

Я так и подумал, но решил уточнить, вдруг есть более элегантное решение. Напишу функцию, скину.

Понадобилось на рисунок-матрицу наносить в определенные точки по заданной схеме мелкие значки-рисунки в зависимости от вводимых пользователем данных, то есть два-три вопроса в диалоговых окнах - и на выходе готовое для печати изображение.
 
 Top
Kibor
Отправлено: 16 Марта, 2016 - 09:12:33
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 4744
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 169
Карма 26




 kunni пишет:
вдруг есть более элегантное решение

вот и есть простое элегантное..
CODE:
int Image_0[1138][578];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");

int Image_1[36][38];
loadimage (#Image_1[0][0], "C:\Image_1.bmp");

int stX=295, stY=175;//вставили сюда..

for (int x=0; x<36; x++)
{
for (int y=0; y<38; y++)
{
Image_0[stX+x][stY+y]=Image_1[x][y];
}
}

saveimage(#Image_0[0][0], "C:\11111.bmp");
 
 Top
kunni
Отправлено: 17 Марта, 2016 - 10:16:03
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2014  
Репутация: 2
Карма 0




 Kibor пишет:
вот и есть простое элегантное

Вы как всегда на высоте!
Вот мой вариант
1 - путь к исходнику
2, 3 - координаты для вставки
4 - путь к тому, что вставляем
5 - путь, куда сохраняем
CODE:
//ФУНКЦИЯ
function рисование (string a, int x, int y, string b, string e)
{
//начало
int главное[1000][1000];//размер большой картинки
int маленькое[100][100];// размер маленькой вставляемой картинки

loadimage (#главное[0][0], a);//загрузили большую
loadimage (#маленькое[0][0], b);//загрузили маленькую

int м_ширина=imagewidth(#маленькое[0][0]);//определим ширину ИКС вклеиваемой картинки
int м_высота=imageheight(#маленькое[0][0]);//определим высоту ИГРЕК вклеиваемой картинки

//рисуем
int n=0; int k=0;//переменные для цикла
1:
if(n<=м_ширина){главное[x+n][y+k]=маленькое[n][k]; n++; goto 1;}
else{k++; n=0;
if(k<=м_высота){goto 1;}
}

saveimage(#главное[0][0], e);

//конец функции
}
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by ExBB FM 1.0 Final