Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Kuvan kääntäminen ja tallentaminen *VB*

The Ohjelmoija [21.12.2003 13:57:18]

#

Miten VB:llä tehdään sillain, että se lataa jonkin kuvan ja sitten sitä voi kääntää ja sitten sen voi tallentaa käännettynä.

Eli, minulla on kuva joka on näin: (en ala laittamaan oikeita kuvia, joten nämä saavat luvan kelvata :D)

Oxxx
O
O
O

Sitten, kun se on ladattu VB:n, niin sitä voi kääntää. Se käännetään vaikka näin:

x
x
x
OOOO

Sitten se tallennetaan ja tadaa! Se on nyt käännetty.

Antti Laaksonen [21.12.2003 16:04:06]

#

Kuvan lataaminen tapahtuu LoadPicture-funktiolla ja tallentaminen SavePicture-komennolla.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbfctloadpicture.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vb98/html/vbstmsavepicture.asp

Esimerkki:

'tämän täytyy olla ohjelman alussa, jotta muutokset tallentuisivat
Picture1.AutoRedraw = True
'ladataan kuvakehykseen kuva
Picture1.Picture = LoadPicture("c:\omat\vanha.bmp")
'kirjoitetaan kuvaan tekstiä
Picture1.Print "Testi"
'tallennetaan muuttunut kuva
SavePicture Picture1.Image, "c:\omat\uusi.bmp")

Jos käännettävä asteluku on 0, 90, 180 tai 270, kääntäminen on helppoa ja nopeaa:

'pikseli on twippiä parempi yksikkö
Me.ScaleMode = 3
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Dim i As Integer, j As Integer
For i = 0 To Picture1.Width
    For j = 0 To Picture1.Height
        '0° käännös
        'Picture2.PSet (i, j), Picture1.Point(i, j)
        '90° käännös
        'Picture2.PSet (Picture1.Width - j, i), Picture1.Point(i, j)
        '180° käännös
        'Picture2.PSet (i, Picture1.Height - j), Picture1.Point(i, j)
        '270° käännös
        Picture2.PSet (j, i), Picture1.Point(i, j)
    Next
Next

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta