![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Маска [XP]
savyhinst © (2008-07-12 21:36:00)Здраствуйте.
Подскажите, пожалуйста. Есть два рисунка в bmp; один - просто картинка, а другой - чёрон-белый и состоит в том, что каждый пиксел на фтором рисунке насыщеностью своего цвета показывает, насколько непрозрачно будет виден соответсвующий пиксел первого рисунка. Короче, фторой рисунок - это маска. Ну, и вот. Я делал так:
Canvas.CopyMode:=cmSrcCopy;
Canvas.Draw(x,y,mask);
Canvas.CopyMode:=cmSrcAnd;
Canvas.Draw(x,y,bitmap);
Но, что-то, не работает. Что делать??
Спасибо за внимание.
User (2008-07-13 21:39:00) [1]... у меня работает такой вариант:
bmp, Bgr: TBitmap;
...
DC:= Bgr.Canvas.Handle;
BitBlt(bmp.Canvas.Handle, 0, 0, x, y, DC, 0, 0, SRCAND);
где bmp- фон, Bgr- накладываемый рисунок. Метод наложения (SRCAND) можно поискать по Хелпу (или в windows.pas { Ternary raster operations })
Sick (2008-07-13 16:43:00) [2]
> savyhinst ©
Ты хочешь сказать, что под первым рисунком должен просвечивать нулевой рисунок?
savyhinst (2008-07-13 13:23:00) [3]
> Учи булеву алгебру и теорию по RGB.
Я учил
Германн (2008-07-13 00:52:00) [4]
> savyhinst © (12.07.08 21:50) [2]
>
> суть в том, что чёрное получается поверх основной картинки.
>
>
Да хоть "поверх", хоть "понизу" - одно и тоже будет. Учи булеву алгебру и теорию по RGB.
KilkennyCat (2008-07-12 21:59:00) [5]ну дык поменять очередность, будет снизу.
savyhinst (2008-07-12 21:50:00) [6]суть в том, что чёрное получается поверх основной картинки.
KilkennyCat (2008-07-12 21:45:00) [7]посмотреть вариант разложения на составляющие цветов R G B и вариант работы c HSB.
А не работает-то как? "Что-то" слишком мало объясняет, а чаще всего решение проблемы возникает при нормальном ее объяснение. Рисовать картинки и писать программу, чтоб увидеть как идет суммирование, мне, честно говоря, лень.