007wan |
Отправлено: 21 Декабря, 2017 - 15:58:03
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: code (Отобразить)CODE:int i, j, k, l, m;
int count_image=90; // всего маленьких картинок
int image[539][512];
loadimage(#image[0][0], "C:\Program Files (x86)\Kibor\1111.bmp"); // загружаем картинку
int arr[90][19][19]; // количество картинок и их размер x*y
int stepX=130, stepY=29; // шаг между картинками
int sizeX=19, sizeY=19; // размер картинок
int countX=5, countY=18; // количество картинок по X и Y в большой картинке
i=0;
for(j=0;j<countX;j++)
{
for(k=0;k<countY;k++)
{
for(l=0;l<sizeX;l++)
{
for(m=0;m<sizeY;m++)
{
arr[i][l][m]=image[l+j*stepX][m+k*stepY];
}
}
i++;
}
}
for(i=0;i<count_image;i++) // сохраняем все картинки в папке temp с именами 1.bmp, 2.bmp ...
{
saveimage (#arr[i][0][0], tempfolder()+format(i)+".bmp");
}
start(tempfolder()); // папка с сохранёнными картинками
P.S. Kibor, как на счёт возможности передавать в screen указатель на массив с изображением?
Ты меня извини, но я запутался) вот изображение:
5 это сколько столбцов? а 18?
(Добавление)
А не. все работает, уважуха))) красава))))))) |
|
|
007wan |
Отправлено: 24 Декабря, 2017 - 10:13:08
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: Цитата: А как их теперь сохранить через loadimage?
Loadimage не сохраняет, а загружает. Определитесь что нужно.
Хорошо. Мне нужно, что бы он обрезал и загружал |
|
|
Zireael |
Отправлено: 24 Декабря, 2017 - 11:22:35
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Если картинки уже были нарезаны и сохранены, то загружает их. Иначе разрезает и сохраняет, загружать их не нужно они и так будут в массиве.
code (Отобразить)CODE:RESOURCE
{
"C:\Program Files (x86)\Kibor\1111.bmp";
}
int i, j, k, l, m;
int count_image=90; // всего маленьких картинок
int image[539][512];
// если большая картинка уже есть загружаем, иначе распаковываем и загружаем
if (fopen (tempfolder()+"1111.bmp", "rb") > 0)
{
fclose();
loadimage(#image[0][0], tempfolder()+"1111.bmp");
}
else
{
unpack("C:\Program Files (x86)\Kibor\1111.bmp", tempfolder()+"1111.bmp", 1);
loadimage(#image[0][0], tempfolder()+"1111.bmp");
}
//////////////////
int arr[90][19][19]; // количество картинок и их размер x*y
int stepX=130, stepY=29; // шаг между картинками
int sizeX=19, sizeY=19; // размер картинок
int countX=5, countY=18; // количество картинок по X и Y в большой картинке
// проверяем все ли картинки есть
int count=0;
for(i=0;i<count_image;i++)
{
if (fopen (tempfolder()+format(i)+".bmp", "rb") > 0)
{
fclose();
count++;
}
}
//////////////
if(count==count_image) // если все картинки есть
{
for(i=0;i<count_image;i++)
{
loadimage (#arr[i][0][0], tempfolder()+format(i)+".bmp"); // загружаем их
}
}
else // иначе, делим большую картинку на маленькие
{
i=0;
for(j=0;j<countX;j++)
{
for(k=0;k<countY;k++)
{
for(l=0;l<sizeX;l++)
{
for(m=0;m<sizeY;m++)
{
arr[i][l][m]=image[l+j*stepX][m+k*stepY];
}
}
i++;
}
}
for(i=0;i<count_image;i++) // сохраняем все картинки в папке temp с именами 1.bmp, 2.bmp ...
{
saveimage (#arr[i][0][0], tempfolder()+format(i)+".bmp");
}
}
start(tempfolder()); // папка с сохранёнными картинками |
|
|
007wan |
Отправлено: 24 Декабря, 2017 - 13:32:22
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
ШЕДЕВР) спасибо)CODE://
INITDIALOG
{
int fyd=0;
int hit=0;
getdisplay(colr, xr, yr);
temp_fold=tempfolder();
for(int n=0; n<11; n++)
{
unpack("C:\Users\Home\Desktop\МОЁ\KIBOR_BOT\Загрузка_"+format(n)+".bmp", temp_fold+"Загрузка_"+format(n)+".bmp", 1);
}
for(n=0; n<11; n++)
{
loadimage (#Загрузка_[n][0][0], temp_fold+"Загрузка_"+format(n)+".bmp");
}
//
int i, j, k, l, m;
int count_image=90; // всего маленьких картинок
int Смайлики[539][512];
if (fopen (tempfolder()+"Смайлики.bmp", "rb") > 0)
{
fclose();
loadimage(#Смайлики[0][0], tempfolder()+"Смайлики.bmp");
}
else
{
unpack("C:\Users\Home\Desktop\МОЁ\KIBOR_BOT\Смайлики.bmp", tempfolder()+"Смайлики.bmp", 1);
loadimage(#Смайлики[0][0], tempfolder()+"Смайлики.bmp");
}
//Проверяем есть ли маленькие картинки:
int countt=0;
for(i=0;i<count_image;i++)
{
if (fopen (tempfolder()+format(i)+".bmp", "rb") > 0)
{
fclose();
countt++;
//
if (i>hit)
{
visualwindow(fyd, 0, 0, imagewidth(#Загрузка_[fyd][0][0]), imageheight(#Загрузка_[fyd][0][0]), xr/2-62, yr/2-55, 100, #Загрузка_[fyd][0][0]);
sleep(10);
disablevisualwindow(fyd);
hit=hit+9;
fyd++;
}
//
}
}
//Если все картинки есть:
int arr[90][19][19]; //[Количество][Х][Y]
int stepX=130, stepY=29; //Шаг между картинками
int sizeX=19, sizeY=19; //Размер картинок
int countX=5, countY=18; //Количество картинок по X и Y в большой картинке
if(countt==count_image)
{
for(i=0;i<count_image;i++)
{
loadimage (#arr[i][0][0], tempfolder()+format(i)+".bmp");//загружаем их
}
}
else
{
i=0;
for(j=0;j<countX;j++)
{
for(k=0;k<countY;k++)
{
for(l=0;l<sizeX;l++)
{
for(m=0;m<sizeY;m++)
{
arr[i][l][m]=image[l+j*stepX][m+k*stepY];
}
}
i++;
i=0;
for(j=0;j<countX;j++)
{
for(k=0;k<countY;k++)
{
for(l=0;l<sizeX;l++)
{
for(m=0;m<sizeY;m++)
{
arr[i][l][m]=Смайлики[l+j*stepX][m+k*stepY];
}
}
i++;
if (i>hit)
{
visualwindow(fyd, 0, 0, imagewidth(#Загрузка_[fyd][0][0]), imageheight(#Загрузка_[fyd][0][0]), xr/2-62, yr/2-55, 100, #Загрузка_[fyd][0][0]);
sleep(10);
disablevisualwindow(fyd);
hit=hit+9;
fyd++;
}
}
}
for(i=0;i<count_image;i++) // сохраняем все картинки в папке temp с именами 1.bmp, 2.bmp ...
{
saveimage (#arr[i][0][0], tempfolder()+format(i)+".bmp");
}
}
}
}
}
//
(Добавление)
Kibor , Понял |
|
|
007wan |
Отправлено: 24 Декабря, 2017 - 14:16:01
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Zireael пишет: CODE:i=0;
for(j=0;j<countX;j++)
{
for(k=0;k<countY;k++)
{
for(l=0;l<sizeX;l++)
{
for(m=0;m<sizeY;m++)
{
arr[i][l][m]=image[l+j*stepX][m+k*stepY];
}
}
i++;
}
}
Этот кусок 2 раза в коде.
Да я уже понял тогда. Убрал. |
|
|
|