Delen via


Ondoorzichtige en semitransparante lijnen tekenen

Wanneer u een lijn tekent, moet u het adres van een Pen-object doorgeven aan de methode DrawLine van de klasse Graphics. Een van de parameters van de Pen constructor is een Color-object. Als u een ondoorzichtige lijn wilt tekenen, stelt u het alfa-onderdeel van de kleur in op 255. Als u een semitransparante lijn wilt tekenen, stelt u het alfaonderdeel in op een willekeurige waarde van 1 tot en met 254.

Wanneer u een semitransparante lijn over een achtergrond tekent, wordt de kleur van de lijn gecombineerd met de kleuren van de achtergrond. Het alfa-onderdeel geeft aan hoe de lijn- en achtergrondkleuren worden gemengd; alfawaarden in de buurt van 0 plaatsen meer gewicht op de achtergrondkleuren en alfawaarden in de buurt van 255 plaatsen meer gewicht op de lijnkleur.

In het volgende voorbeeld wordt een afbeelding tekent en vervolgens drie regels tekent die de afbeelding als achtergrond gebruiken. De eerste regel maakt gebruik van een alfa-component van 255, dus het is ondoorzichtig. De tweede en derde regel gebruiken een alfa-component van 128, dus ze zijn semitransparant; u kunt de achtergrondafbeelding zien door de lijnen. De aanroep van Graphics::SetCompositingQuality zorgt ervoor dat de blending voor de derde regel wordt uitgevoerd in combinatie met gammacorrectie.

Image image(L"Texture1.jpg");
graphics.DrawImage(&image, 10, 5, image.GetWidth(), image.GetHeight());
Pen opaquePen(Color(255, 0, 0, 255), 15);
Pen semiTransPen(Color(128, 0, 0, 255), 15);
graphics.DrawLine(&opaquePen, 0, 20, 100, 20);
graphics.DrawLine(&semiTransPen, 0, 40, 100, 40);
graphics.SetCompositingQuality(CompositingQualityGammaCorrected);
graphics.DrawLine(&semiTransPen, 0, 60, 100, 60);

In de volgende afbeelding ziet u de uitvoer van de voorgaande code.

illustratie die een afbeelding toont, overlaid met drie brede lijnen: één ondoorzichtig, een enigszins transparant en één zeer transparant