IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Закрасить картинку на С++Builder
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 45
Пол: Мужской

Репутация: -  0  +


Люди поможите еще раз? в общем в билдере 6 работаю вот. Вот и надо допустим открыл рисунок в Image . Вот и надо чтоб он из центра закрашивался по пикселям.Причем надо сделать чтобы можно было выбирать цвет закраски. Я почти зделал эту прогу , и она работает как надо но только с черным цветом. А надо чтоб выбрал цвет , и этим цветом закрасилось.

void __fastcall TForm1::open1Click(TObject *Sender)
{
vibor->Execute(); // выбираем файл
Image->Picture->LoadFromFile(vibor->FileName);
Image->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::fillClick(TObject *Sender)
{
ColorDialog->Execute();
d=1;
x=(Image->Width)/2;
y=(Image->Height)/2;
Image1->Canvas->Pixels[x][y]=ColorDialog->Color;
Timer->Enabled=true;
Image1->Canvas->CopyMode=cmSrcAnd; // включаем режим наложения
Image1->Canvas->CopyRect(Rect(0,0,Image1->Width,Image1->Height),Image->Canvas,Rect(0,0,Image->Width,Image->Height));

}
//---------------------------------------------------------------------------
// в Image - рисунок, кот.надо закрасить image1- на нем рисуем по пиксельно
void __fastcall TForm1::TimerTimer(TObject *Sender)
{
for (i=1;i<=d;i++)
{
y++;
if (x==0) Timer->Enabled=false;
Image1->Canvas->Pixels[x][y]=ColorDialog->Color;
}
Image1->Canvas->CopyMode=cmSrcAnd;
Image1->Canvas->CopyRect(Rect(0,0,Image1->Width,Image1->Height),Image->Canvas,Rect(0,0,Image->Width,Image->Height));

for (i=1;i<=d;i++)
{
x++;
Image1->Canvas->Pixels[x][y]=ColorDialog->Color;
}
d++;
for (i=1;i<=d;i++)
{
y--;
Image1->Canvas->Pixels[x][y]=ColorDialog->Color;
}
for (i=1;i<=d;i++)
{
x--;
Image1->Canvas->Pixels[x][y]=ColorDialog->Color;
}
d++;
}



Вот Timer используется чтоб увидеть как рисунок из центра закрашивается. В таймере получается изменяется координаты , так что закраска идет змейкой вокруг центрального пикселя и т.д.
Вот и вот не подскажите как сделать, чтоб любым цветом закрашивалось, а то получается если выбрать любой другой цвет , то получиться как будто цветной фильтр, иными словами если посмореть на голубое небо через красное стекло.

(Препод достал уже все ему переделывать надо)

Сообщение отредактировано: Child of Bodom -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 25.06.2022 14:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name