vectorial - C#: dibujar un mapa de bits en otro, con transparencia
que es un mapa de bits en corel draw (2)
Especifique el color de transparencia de su pequeño mapa de bits. p.ej
Bitmap largeImage = new Bitmap();
Bitmap smallImage = new Bitmap();
--> smallImage.MakeTransparent(Color.White);
Graphics g = Graphics.FromImage(largeImage);
g.DrawImage(smallImage, new Point(10,10);
Tengo dos mapas de bits, llamados largeBmp y smallBmp. Quiero dibujar smallBmp en largeBmp, luego dibujar el resultado en la pantalla. Los píxeles blancos de SmallBmp deben ser transparentes. Aquí está el código que estoy usando:
public Bitmap Superimpose(Bitmap largeBmp, Bitmap smallBmp) {
Graphics g = Graphics.FromImage(largeBmp);
g.CompositingMode = CompositingMode.SourceCopy;
smallBmp.MakeTransparent();
int margin = 5;
int x = largeBmp.Width - smallBmp.Width - margin;
int y = largeBmp.Height - smallBmp.Height - margin;
g.DrawImage(smallBmp, new Point(x, y));
return largeBmp;
}
El problema es que el resultado se vuelve transparente siempre que smallBmp sea transparente. Solo quiero ver a través de largeBmp, no a lo que hay detrás.
CompositingMode.SourceCopy
es el problema aquí. Desea CompositingMode.SourceOver
para obtener la mezcla alfa.