Наложение изображений с прозрачностью
Наложение изображений с прозрачностью
Наложение изображений с прозрачностью Данный код накладывает одно изображение на другое с указанной степенью прозрачности. Степень прозрачности задаётся от 0 до 255. var bmp1, bmp2: TBitMap; Blend: TBlendFunction; begin bmp1 := TBitMap.Create; bmp2 := TBitMap.Create; bmp1.LoadFromFile('C:\1.bmp'); // загружаем 1 битмап bmp2.LoadFromFile('C:\2.bmp'); // и второй битмап bmp1.PixelFormat := pf32bit; // переводим оба в 32 бит bmp2.PixelFormat := pf32bit; Blend.BlendOp := AC_SRC_OVER; Blend.BlendFlags := 0; Blend.SourceConstantAlpha := 128; // прозрачность 50% (0 - 255) Blend.AlphaFormat := AC_SRC_ALPHA; // накладываем битмап 2 на битмап 1. Результат в bmp1 if Windows.AlphaBlend(bmp1.Canvas.Handle, 0, 0, bmp1.Width, bmp1.Height, bmp2.Canvas.Handle, 0, 0, bmp2.Width, bmp2.Height, Blend) then Canvas.Draw(0, 0, bmp1) // рисуем результат на форме else ShowMessage(IntToStr(GetLastError)); // или код ошибки, если наложить не удалось bmp1.Free; bmp2.Free; // уничтожаем битмапы end; Автор: Snowy