Что я делаю не так? Или может есть другой, более очевидный путь, сам то я вообще только неделю как открыл для себя программирование в виде Кибора.
CODE:
//скрипт для уменьшения глубины цвета изображения до 8 цветов
int shot[1920][1080];//массив для хранения исходного изображения
screen (#shot[0][0], 0, 0, 1920, 1080, -1);
int shotR[1920][1080];//массив для хранения красного канала
int shotG[1920][1080];//зелёного
int shotB[1920][1080];//синего
//раскладываем исходное изображение на каналы
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shotR[a][b]=rvalue(shot[a][b]);
}
}
saveimage(#shotR[0][0], "D:\Rchannel.bmp");
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shotG[a][b]=gvalue(shot[a][b]);
}
}
saveimage(#shotG[0][0], "D:\Gchannel.bmp");
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shotB[a][b]=bvalue(shot[a][b]);
}
}
saveimage(#shotB[0][0], "D:\Bchannel.bmp");
//уменьшаем градацию цветов
//все оттенки серого до 128 становятся нулями
//остальные - единицами
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
if (shotR[a][b]<128)
{
shotR[a][b]=0;
}
else
{
shotR[a][b]=1;
}
}
}
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
if (shotG[a][b]<128)
{
shotG[a][b]=0;
}
else
{
shotG[a][b]=1;
}
}
}
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
if (shotB[a][b]<128)
{
shotB[a][b]=0;
}
else
{
shotB[a][b]=1;
}
}
}
//Собираем картинку обратно, получая на выходе 8 цветов
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shot[a][b]=rgb(shotR[a][b], shotG[a][b], shotB[a][b]);
}
}
saveimage(#shot[0][0], "D:\8colors.bmp");
int shot[1920][1080];//массив для хранения исходного изображения
screen (#shot[0][0], 0, 0, 1920, 1080, -1);
int shotR[1920][1080];//массив для хранения красного канала
int shotG[1920][1080];//зелёного
int shotB[1920][1080];//синего
//раскладываем исходное изображение на каналы
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shotR[a][b]=rvalue(shot[a][b]);
}
}
saveimage(#shotR[0][0], "D:\Rchannel.bmp");
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shotG[a][b]=gvalue(shot[a][b]);
}
}
saveimage(#shotG[0][0], "D:\Gchannel.bmp");
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shotB[a][b]=bvalue(shot[a][b]);
}
}
saveimage(#shotB[0][0], "D:\Bchannel.bmp");
//уменьшаем градацию цветов
//все оттенки серого до 128 становятся нулями
//остальные - единицами
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
if (shotR[a][b]<128)
{
shotR[a][b]=0;
}
else
{
shotR[a][b]=1;
}
}
}
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
if (shotG[a][b]<128)
{
shotG[a][b]=0;
}
else
{
shotG[a][b]=1;
}
}
}
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
if (shotB[a][b]<128)
{
shotB[a][b]=0;
}
else
{
shotB[a][b]=1;
}
}
}
//Собираем картинку обратно, получая на выходе 8 цветов
for (int a=0; a<1920; a++)
{
for (int b=0; b<1080; b++)
{
shot[a][b]=rgb(shotR[a][b], shotG[a][b], shotB[a][b]);
}
}
saveimage(#shot[0][0], "D:\8colors.bmp");
Картинки не создаются.