|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.05.2020, 18:58 | #1 |
Пользователь
Регистрация: 24.03.2019
Сообщений: 29
|
Прошу помощи с Bitmap
Здравствуйте.
Прошу помочь разобраться с наложением картинки на некоторый фон с тем условием что бы пиксели накладываемой картинки с чёрным цветом (0 0 0) не закрашивали фон. Много ковырялся в инете но так и не смог найти рабочей код. мой вариант такой a:=TBitmap.Create; a.assign(ManP[1,1].Bitmap); // Картинку с массива картинок перекидываю в BitMap a для простоты восприятия //a.Transparent:=true; Пробовал как вариант //a.TransparentMode:=tmAuto; a.Transparent := true; a.TransparentMode := tmFixed; a.TransparentColor:= clBlack; // $0; Scr1.Canvas.Draw(x,y,a); Но к сожалению картинка накладывается полностью без зоны прозрачности ((((( , хотя на картинке очень много чёрного цвета . Что не так подскажите. Последний раз редактировалось Fedia74; 13.05.2020 в 19:01. |
13.05.2020, 19:58 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Значит пиксели фона не строго чёрные.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
13.05.2020, 20:05 | #3 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Через scanline рассчитываешь альфа-канал как разность между черным цветом и текущим.
Color4.A:=(abs(color4.b-color.b)+abs(color4.g-color.g)+abs(color4.r-color.r)) div 3; Через pixels[x,y] -не получится он альфу искажает. А после того как рассчитала используете AlphaBlend
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
13.05.2020, 21:13 | #4 |
Пользователь
Регистрация: 24.03.2019
Сообщений: 29
|
|
13.05.2020, 21:14 | #5 |
Пользователь
Регистрация: 24.03.2019
Сообщений: 29
|
Огромное спасибо за подсказку , но я в этом новичёк и для меня это тёмный лес , можно пример какой нибудь , что бы изучить его ?
|
13.05.2020, 21:17 | #6 |
Пользователь
Регистрация: 24.03.2019
Сообщений: 29
|
В старом добром Турбо паскале была процедурка такая PutImage(x,y,TypePut) где TypePut это тип наложения картинки NormalPut, XorPut и прочее , в Лазарусе есть такое же ?
|
13.05.2020, 21:32 | #7 |
Пользователь
Регистрация: 24.03.2019
Сообщений: 29
|
Всё получилось !!!!
Действительно в картинке черные были не чисто черными пикселями , это произошло поскольку JPG уродует , подчистил всё и сохранил в BMP и всё стало, как в проге выше , работать. Спасибо за помощь !!!! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прошу помощи | Jimoros | Общие вопросы C/C++ | 0 | 11.01.2014 23:43 |