Форум: "Начинающим";
Текущий архив: 2016.08.07;
Скачать: [xml.tar.bz2];
ВнизНаложение полупрозрачной картинки Найти похожие ветки
← →
mein © (2014-12-08 22:39) [0]Хочу наложить полупрозрачный битмап на image, но что то не получается, что делаю не так?
Bitmap2:=TBitmap.Create;
Bitmap2.Width:=250;
Bitmap2.Height:=250;
Bitmap2.LoadFromFile("gipsokarton/1.bmp");
bf.BlendOp:=AC_SRC_OVER;
bf.BlendFlags:=0;
bf.AlphaFormat:=AC_SRC_ALPHA;
bf.SourceConstantAlpha:=255;
Windows.AlphaBlend(image1.Canvas.Handle, 0, 0, image1.Width, image1.Height, Bitmap2.Canvas.Handle, 0, 0, Bitmap2.Width, Bitmap2.Height, bf);
← →
MBo © (2014-12-09 08:28) [1]А у битмапа имеется альфаканал, чтобы можно было AC_SRC_ALPHA и попиксельно-разную прозрачность использовать?
← →
mein © (2014-12-09 08:42) [2]> MBo © (09.12.14 08:28) [1]
Битмап обычный - Bitmap2: TBitmap;
Поставил Bitmap2.LoadFromFile("gipsokarton/4.png"); вообще стало писать что невалидный файл.
← →
MBo © (2014-12-09 09:07) [3]Битмапы могут иметь разный формат.
Альфаканал может присутствовать только в битмапе формата pf32bit.
На всякий случай - пример смешивания двух битмапов. Прозрачность НЕ попиксельная, а одна для всей картинки.var
bm1, bm2: TBitmap;
bf: TBlendFunction;
Alpha: Byte;
begin
bm1 := TBitmap.Create;
bm1.Width := 200;
bm1.Height := 200;
bm1.PixelFormat := pf32bit;
bm2 := TBitmap.Create;
bm2.Assign(bm1);
bm1.Canvas.Brush.Color := clRed;
bm1.Canvas.FillRect(Rect(0, 0, 150, 150));
bm2.Canvas.Brush.Color := clBlue;
bm2.Canvas.FillRect(Rect(50, 50, 200, 200));
Alpha := 128;
bf.BlendOp := AC_SRC_OVER;
bf.BlendFlags := 0;
bf.SourceConstantAlpha := Alpha;
bf.AlphaFormat := 0;// AC_SRC_ALPHA;
WinApi.Windows.AlphaBlend(bm1.Canvas.Handle, 0, 0, bm1.Width, bm1.Height,
bm2.canvas.handle, 0, 0, bm2.Width, bm2.Height, bf);
Canvas.Draw(0, 0, bm1);
← →
Endy (2014-12-12 11:03) [4]Иначе или конвертируйте ваш "4.png" в "1.bmp" с альфаканалом, или грузите через TPNGObject.
← →
mein © (2014-12-12 18:51) [5]Да, причина была в альфа канале png. Поставил плагин на paint.net, написал - Bitmap2.LoadFromFile("gipsokarton/4.bmp"); и всё заработало.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.08.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c