N
Natashka
Здравствуйте! Пишу программу, которая преобразовывает изображение в схему для вышивки. Для этого изображение загружается в программу, разбивается на определенное количество равных квадратных ячеек (пользователь вводит количество необходимых ячеек по ширине изображения, и относительно этого программа разбивает все изображение). Затем в каждой ячейке определяется основной цвет, так чтобы в ячейке был только один цвет, результат выводится на экран. Дальше по задумке необходимо ограничить количество цветов на изображении (необходимое кол-во вводит пользователь) Вот тут то и возникает проблема: Если, скажем, пишем 3 цвета то это не совсем 3 цвета. У нас система RGB, и вот каждый из этих цветов делится на три. т.е. в реальности 3 - это 9. Как-то так.
У меня это записано таким образом:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int colcol=Edit2->Text.ToInt();
int inclr,outclr,r,g,b;
for (int x=1;x<Image2->Width;x++)
{for (int y=1;y<Image2->Height;y++)
{
inclr=Image2->Canvas->Pixels[x][y];
outclr=MyColors(colcol,inclr);
// r=OneColor(outclr,'R');
// g=OneColor(outclr,'G');
// b=OneColor(outclr,'B');
Image2->Canvas->Pixels[x][y]=outclr;
}
}
}
У меня это записано таким образом:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int colcol=Edit2->Text.ToInt();
int inclr,outclr,r,g,b;
for (int x=1;x<Image2->Width;x++)
{for (int y=1;y<Image2->Height;y++)
{
inclr=Image2->Canvas->Pixels[x][y];
outclr=MyColors(colcol,inclr);
// r=OneColor(outclr,'R');
// g=OneColor(outclr,'G');
// b=OneColor(outclr,'B');
Image2->Canvas->Pixels[x][y]=outclr;
}
}
}