HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Árnyékképzés, átlátszóság mátrix-műveletek útján


Példaprogram letöltése

7809 bájt

GDI+ által biztosított grafikai mátrix műveletekkel igen sokféle tevékenységet vagyunk képesek elvégezni, így például egy kép mögé árnyékot is készíthetünk, de akár egy kép átlátszóságát is befolyásolhatjuk.

Elsőként valósítsuk meg az árnyék létrehozását.
  Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    Dim g As Graphics = e.Graphics
      ...
Mind a két esetben egy olyan GIF képet használunk fel, melyben adott egy szín, ahol átlátszó a kép. Az árnyéknak így a kép szélein kell megjelennie.
    Dim bmp As New Bitmap(Application.StartupPath + "\1.gif")
Létrehozunk egy ImageAttributes osztályt, melynek SetColorMatrix függvényével állítjuk be az új mátrix-tulajdonságokat, amit fel kell használni a képhez.
    Dim ia As New ImageAttributes()
    Dim cm As New ColorMatrix() 
Árnyék létrehozásához az alábbi értékek megadása szükséges. A Matrix33 property-ben megadott szám mértékében lesz látható az árnyék.
    cm.Matrix00 = 0
    cm.Matrix11 = 0
    cm.Matrix22 = 0
    cm.Matrix33 = CSng(trackBar1.Value) / 10 
    ia.SetColorMatrix(cm)
Ezt követően már csak ki kell rajzolnunk úgy a képet, hogy felhasználjuk az ImageAttributes osztályt.
g.DrawImage(bmp, New Rectangle(10 + trackBar2.Value, 10 + trackBar2.Value, bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel, ia)
Ezt követően kirajzoljuk az eredeti képet is, rá az árnyékra.
e.Graphics.DrawImage(bmp, 10, 10)
Az átlátszóság szabályozása hasonlóan történik, mint az árnyék képzése. Az alábbi adatok segítségével azt szabályozhatjuk, hogy a kirajzolásra kerülő kép milyen mértékben lehet áttetsző. Ennek pontos mértékét szintén a Matrix33 property értéke adja.
    Dim ia2 As New ImageAttributes()
    Dim cm2 As New ColorMatrix()
    cm2.Matrix00 = 1
    cm2.Matrix11 = 1
    cm2.Matrix22 = 1
    cm2.Matrix33 = CSng(trackBar3.Value) / 10
    ia2.SetColorMatrix(cm2)
    g.DrawImage(bmp, New Rectangle(220, 10, bmp.Width, bmp.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel, ia2)
  End Sub 'Form1_Paint

Cikksorozat

#IDKategóriaCikk címeSorozat
4397Windows.NET Framework konfigurálása az operációs rendszerben1. rész
4446Windows.NET Framework konfigurációs snap-in2. rész


Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |