Длл позволяет загрузить изображение в массив из ресурсов никуда не распаковывая. Картинки должны быть bmp 24 или 32 бита.
Пример использования:
CODE:
// закинуть длл на диск C:\
// указать путь к картинке в блоке RESOURCE и функции resource
// собрать exe, поставив галку 'Упаковать файлы с блока RESOURCE в EXE'
// после сборки картинку можно удалить, она больше не нужна
unpack("C:\LoadImage.dll", tempfolder()+"LoadImage.dll", 0); // распаковать длл
external(INT, "load_image", "load_image", "C:\LoadImage.dll"); // загрузить функцию
char buf[999999]; // массив чтобы загрузить картинку из ресурсов
int image[100][100]; // массив для картинки (может быть больше чем сама картинка)
resource(#buf[0], "D:\Kibor2\Image_0.bmp"); // загрузить картинку из ресурсов
load_image(address(#buf[0]), address(#image[0][0]), sizearray(image), sizearray(image[])); // загрузить картинку в массив
int x, y;
if(findimage(1, #image[0][0], -1, #x, #y, 0, 0, 1920, 1080, -1))
{
messagebox("Картинка найдена");
mousemove(x, y);
}
else messagebox("Картинка не найдена");
// saveimage(#image[0][0], "C:\Image111.bmp"); // сохранить картинку
RESOURCE
{
"C:\LoadImage.dll";
"D:\Kibor2\Image_0.bmp";
}
// указать путь к картинке в блоке RESOURCE и функции resource
// собрать exe, поставив галку 'Упаковать файлы с блока RESOURCE в EXE'
// после сборки картинку можно удалить, она больше не нужна
unpack("C:\LoadImage.dll", tempfolder()+"LoadImage.dll", 0); // распаковать длл
external(INT, "load_image", "load_image", "C:\LoadImage.dll"); // загрузить функцию
char buf[999999]; // массив чтобы загрузить картинку из ресурсов
int image[100][100]; // массив для картинки (может быть больше чем сама картинка)
resource(#buf[0], "D:\Kibor2\Image_0.bmp"); // загрузить картинку из ресурсов
load_image(address(#buf[0]), address(#image[0][0]), sizearray(image), sizearray(image[])); // загрузить картинку в массив
int x, y;
if(findimage(1, #image[0][0], -1, #x, #y, 0, 0, 1920, 1080, -1))
{
messagebox("Картинка найдена");
mousemove(x, y);
}
else messagebox("Картинка не найдена");
// saveimage(#image[0][0], "C:\Image111.bmp"); // сохранить картинку
RESOURCE
{
"C:\LoadImage.dll";
"D:\Kibor2\Image_0.bmp";
}
Можно загружать в трёхмерный массив:
Цитата:
char buf[999999]; // массив чтобы загрузить картинку из ресурсов
int image[5][100][100]; // массив для 5 картинок
resource(#buf[0], "D:\Kibor2\Image_0.bmp" ); // загрузить картинку из ресурсов
load_image(address(#buf[0]), address(#image[0][0][0]), sizearray(image[]), sizearray(image[][]));
resource(#buf[0], "D:\Kibor2\Image_1.bmp" ); // загрузить картинку из ресурсов
load_image(address(#buf[0]), address(#image[1][0][0]), sizearray(image[]), sizearray(image[][]));
int image[5][100][100]; // массив для 5 картинок
resource(#buf[0], "D:\Kibor2\Image_0.bmp" ); // загрузить картинку из ресурсов
load_image(address(#buf[0]), address(#image[0][0][0]), sizearray(image[]), sizearray(image[][]));
resource(#buf[0], "D:\Kibor2\Image_1.bmp" ); // загрузить картинку из ресурсов
load_image(address(#buf[0]), address(#image[1][0][0]), sizearray(image[]), sizearray(image[][]));
Функция load_image возвращает:
1 в случае успеха.
-1 Размер массива по x меньше размера картинки по x.
-2 Размер массива по y меньше размера картинки по y.