| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Уменьшение количества цветов в изображении |
| Автор: Natashechka 17.4.2013, 12:08 |
| Здравствуйте! Пишу программу, которая преобразовывает изображение в схему для вышивки. Для этого изображение загружается в программу, разбивается на определенное количество равных квадратных ячеек (пользователь вводит количество необходимых ячеек по ширине изображения, и относительно этого программа разбивает все изображение). Затем в каждой ячейке определяется основной цвет, так чтобы в ячейке был только один цвет, результат выводится на экран. Дальше по задумке необходимо ограничить количество цветов на изображении (необходимое кол-во вводит пользователь) Вот тут то и возникает проблема: Если, скажем, пишем 3 цвета то это не совсем 3 цвета. У нас система RGB, и вот каждый из этих цветов делится на три. т.е. в реальности 3 - это 9. Как-то так. Работаю в Borlsnd C++ Builder. У меня это записано таким образом: 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; } } } |
| Автор: Avazart 18.4.2013, 17:03 | ||
| А в чем собственно проблема ? Пользуйся преобразованиями TColor <-> RGB
|