denprox Опубликовано 5 апреля, 2017 Опубликовано 5 апреля, 2017 Всем привет! Подскажите, как программно применить TransparentColor для TImage которые динамически создаются. Пишу так, но эффекта ноль... MultiResBitmap.TransparentColor := TColorRec.White; p.s. фотошоп не предлагать, нужно именно указать цвет прозрачности Цитата
0 denprox Опубликовано 6 апреля, 2017 Автор Опубликовано 6 апреля, 2017 Решение найдено: procedure SetTransparent(oBmp: TBitmap); var bmpData: TBitmapData; colorToMakeTransparent: TAlphaColor; transparentColor: TAlphaColor; color: TAlphaColor; x,y: Integer; begin oBmp.Map(TMapAccess.ReadWrite, bmpData); colorToMakeTransparent := bmpData.GetPixel(0,0); transparentColor := $00000000; for x := 0 to bmpData.Width do begin for y := 0 to bmpData.Height do begin color := bmpData.GetPixel(x,y); if (color = colorToMakeTransparent) then bmpData.SetPixel(x,y,transparentColor); end; end; oBmp.Unmap(bmpData); end; procedure TForm1.Button1Click(Sender: TObject); var img: TImage; begin img := TImage.Create(Self); with img do begin Parent := Self; Position.X := 136; Position.Y := 16; Width := 257; Height := 321; Bitmap.LoadFromFile(ExtractFilePath(ParamStr(0))+'123.png'); SetTransparent(Bitmap); end; end; Цитата
Вопрос
denprox
Всем привет! Подскажите, как программно применить TransparentColor для TImage которые динамически создаются.
Пишу так, но эффекта ноль...
p.s. фотошоп не предлагать, нужно именно указать цвет прозрачности
1 ответ на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.