5 / 5 / 0
Регистрация: 14.10.2010
Сообщений: 104
1

Canvas Blend

18.10.2010, 09:09. Показов 3132. Ответов 6
Метки нет (Все метки)

Как с помощью Canvas-a нарисовать в компонент Image полупрозрачное изображение, чтоб через него проглядывалась форма или другой компонент Image. Если можно ответ с листингом.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2010, 09:09
Ответы с готовыми решениями:

Canvas
Здравствуйте!!! Помогите пожалуйста с одной программкой очень надо. программа вывода на экран...

*.png canvas alpha blend
Доброго времени суток! Я хотел бы вывести на canvas png изображение, сохранив при этом alpha...

Canvas html5, как разместить черный пискель в центре canvas'a?
как разместить черный пискель в центре canvas'a?

Можно ли одной процедурой рисовать на Image.Canvas и Printer.Canvas
Здравствуйте, пожалуйста, подскажите можно ли одной процедурой рисовать на Image.Canvas и...

6
Тутошний я
2140 / 1196 / 224
Регистрация: 03.11.2009
Сообщений: 4,393
Записей в блоге: 2
19.10.2010, 23:22 2
нарисовать в компонент Image полупрозрачное изображение
В зависимости от нужной прозрачности, нужно в определённом процентном соотношении, сложить картинку на Image и под ним.
Для одинаковой видимости обоих, взять 50% "яркости" от каждой.
Полезная тема Считывание значений пикселей в массив
0
37 / 41 / 3
Регистрация: 10.10.2010
Сообщений: 364
25.10.2010, 17:19 3
Ну самый простой способ это да, задать картинке 50% прозрачности или сок вам там надо...
и сохранить для веб устройств в формате png-24.
0
Тутошний я
2140 / 1196 / 224
Регистрация: 03.11.2009
Сообщений: 4,393
Записей в блоге: 2
25.10.2010, 23:05 4
Image 2 меньше Image 1 и размещён над ним.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int z,c;
z=Image2->Left-Image1->Left;
c=Image2->Top-Image1->Top;
Graphics::TBitmap*b=new Graphics::TBitmap();
b->LoadFromFile("1.bmp");
 
for (int x=z;x<z+200;x++)//перебор по горизонтали//Image2 200*200
{
 for (int y=c;y<c+200;y++)
 {
  int red = (GetRValue(Image1->Canvas->Pixels[x][y])); // красная составляющая
  int green = (GetGValue(Image1->Canvas->Pixels[x][y])); // зеленая составляющая
  int blue = (GetBValue(Image1->Canvas->Pixels[x][y])); // синяя составляющая
  int red1 = (GetRValue(b->Canvas->Pixels[x-z][y-c]));
  int green1 = (GetGValue(b->Canvas->Pixels[x-z][y-c]));
  int blue1 = (GetBValue(b->Canvas->Pixels[x-z][y-c]));
  red=(red+red1)/2;//так тока для 50%
  green=(green+green1)/2;
  blue=(blue+blue1)/2;
  Image2->Canvas->Pixels[x-z][y-c] = (TColor)RGB(red,green,blue);//рисуем
 }
}
delete b;
}
1
LK
Заблокирован
05.02.2011, 18:22 5
Цитата Сообщение от Grey Посмотреть сообщение
Image 2 меньше Image 1 и размещён над ним.
- а прикол-то в чем ? картинка-то не прозрачная...
Миниатюры
Canvas Blend  
0
Тутошний я
2140 / 1196 / 224
Регистрация: 03.11.2009
Сообщений: 4,393
Записей в блоге: 2
05.02.2011, 21:52 6
У меня с тем кодом так получалось.
Можно верхнюю ещё прозрачней сделать.
Миниатюры
Canvas Blend  
0
LK
Заблокирован
05.02.2011, 22:56 7
Альфа-наложение - спецэффекты почти без усилий
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2011, 22:56
Помогаю со студенческими работами здесь

построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)
Надо построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)

Как добиться одинакового размера шрифта при выводе на Image.Canvas и Printer.Canvas
Здравствуйте! Подскажите, пожалуйста, как добиться одинакового размера шрифта при выводе на...

Переместить метку с canvas на canvas
Есть 4 canvas, на каждой - по 3 метки. Нужно реализовать программу по перетаскиванию меток с canvas...

Canvas привязать к другому Canvas
Здравствуйте. Подскажите пожалуйста, как реализовать следующее: имеются две WPF формы с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru