Автоматизация и боты

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

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

> Без описания
adoks
Отправлено: 21 Августа, 2019 - 10:07:01
Post Id



Пользователь
Прохожий


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




Доброго времени суток. Пытаюсь конвертировать из bmp в bmpt и обратно файлы изображений. Делаю по кодам из темы про ресурсы. По итогу не получаются оригиналы исходников. Или битые файлы, или частично утеряные фрагменты изображений. Где я что не так делаю?
Вот что выходит
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

CODE:

int Image_0[164][95];
int Image_1[116][135];
string pyt="D:\";
string file_bmp[1000];
int kol, n;


kol=dir(pyt, #file_bmp[0], "file", "bmp");//узнаем все bmp
for (n=0; n<kol; n++)//перечислить все bmp и конверт их
{
if (bmpt()==-1){messagebox (ошибочка.); goto er;}
}
er:;

loadimage_res(#Image_0[0][0], "D:\Image_0.bmpt");
loadimage_res(#Image_1[0][0], "D:\Image_1.bmpt");

saveimage(#Image_0[0][0], "D:\Image_0_end.bmp");
saveimage(#Image_1[0][0], "D:\Image_1_end.bmp");


function bmpt()
{
int ImageS[500][500];
int x, y, x1, y1;
char byt[4];
if (loadimage (#ImageS[0][0], pyt+file_bmp[n])<1)return -1;
x=imagewidth(#ImageS[0][0]);
y=imageheight(#ImageS[0][0]);

if (fopen (pyt+file_bmp[n]+"t", "wb")!=0)
{
codhex(x, #byt[0]);//Конвертируем число int 4 байт x в HEX (ширина)
fwriteb(byt[0]);fwriteb(byt[1]);fwriteb(byt[2]);fwriteb(byt[3]);
codhex(y, #byt[0]);//Конвертируем число int 4 байт y в HEX (высота)
fwriteb(byt[0]);fwriteb(byt[1]);fwriteb(byt[2]);fwriteb(byt[3]);
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
fwriteb(formatic(rvalue(ImageS[x1][y1])));
fwriteb(formatic(gvalue(ImageS[x1][y1])));
fwriteb(formatic(bvalue(ImageS[x1][y1])));
}
}
fclose();
}
return 0;
}


function loadimage_res(int #images[0][0], string pyt);
{
char buf[1000000];
int sezbuf;
int n, x, y, x1, y1;
sezbuf=resource(#buf[0], pyt);
n=0; x=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=4; y=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=8;
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
images[x1][y1]=rgb(formatci(buf[n]), formatci(buf[n+1]), formatci(buf[n+2]));
n=n+3;
}
}
for (x1=0; x1<=x; x1++)images[x1][y]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
for (y1=0; y1<=y; y1++)images[x][y1]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
}


(Добавление)
Вот здесь фото начальной картинки и то что вышло после конвертации [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
 
 Top
Zireael
Отправлено: 21 Августа, 2019 - 12:32:23
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
function loadimage_res(int #images[0][0], string pyt);
{
char buf[1000000];
int sezbuf;
int n, x, y, x1, y1;
sezbuf=resource(#buf[0], pyt);
n=0; x=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=4; y=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=8;
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
images[x1][y1]=rgb(formatci(buf[n]), formatci(buf[n+1]), formatci(buf[n+2]));
n=n+3;
}
}
for (x1=0; x1<=x; x1++)images[x1][y]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
for (y1=0; y1<=y; y1++)images[x][y1]=-1;//забить границу -1 в целое число int ImageS[x1][y1]
}

Заменить на эту:
CODE:
function loadimage_res(int #images, string pyt);
{
initialarray(#images[0][0], -1);
char buf[1000000];
int sezbuf;
int n, x, y, x1, y1;
sezbuf=resource(#buf[0], pyt);
n=0; x=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=4; y=codhexi(#buf[n], 4);//перевести HEX код 4 байт с целое число int x
n=8;
for (y1=0; y1<y; y1++)
{
for (x1=0; x1<x; x1++)
{
images[x1][y1]=rgb(formatci(buf[n]), formatci(buf[n+1]), formatci(buf[n+2]));
n=n+3;
}
}
}
 
 Top
adoks
Отправлено: 21 Августа, 2019 - 12:38:04
Post Id



Пользователь
Прохожий


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




Спасибо, помогло!!!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by