Avatar billede simon_jacobsen Nybegynder
22. maj 2002 - 18:22 Der er 5 kommentarer og
1 løsning

bitblt ???

Hvordan bruger man funktionen bitblt ???
helst en meget nem forklaring i bedste newbie stil da jeg ikke kender særlig meget til billede behandling i VB.
På Forhånd Tak. :)
Avatar billede medions Nybegynder
22. maj 2002 - 18:27 #1
The BitBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.

BitBlt operations on byte-aligned rectangles are faster than BitBlt operations on rectangles that are not byte aligned.

When the BitBlt function converts a monochrome bitmap to color, it sets white bits (1) to the background color and black bits (0) to the foreground color. The foreground and background colors of the destination device context are used. To convert color to monochrome, BitBlt sets pixels that match the background color to white and sets all other pixels to black. BitBlt uses the foreground and background colors of the color device context to convert from color to monochrome.

//>Rune
Avatar billede simon_jacobsen Nybegynder
22. maj 2002 - 18:36 #2
hvor sætter man de forskellige informationer ???
(med forklaring ikke kopi fra VB)
Avatar billede medions Nybegynder
22. maj 2002 - 18:39 #3
så ved jeg det ik', jeg kender desvære ikke noget til funktionen...!

//>Rune
Avatar billede tjacob Juniormester
22. maj 2002 - 18:55 #4
Kommer om 2 min
Avatar billede tjacob Juniormester
22. maj 2002 - 19:02 #5
Du skal have et bitmap med en DC (Device Context). Det kunne være en picturebox eller en form (der har en property der hedder HasDC), eller andre kontroller med et billede. Det kan også være et bitmap du selv har lavet, eller en fil, men så skal der flere API-kald til at finde DC'en.

For at gøre det simpelt: Lav en form1 med en picturebox picture1 og en knap Command1.
Indsæt et billede i pictureboxen.

I et modul indsættes funktionen:

Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Alle parametre findes ved funktionskaldet undtagen dwRop, der er en konstant med flere værdier. (for langt til her). Vi bruger konstanten vbSrcCopy der blot kopierer almindeligt.

i knappen:

Private Sub Command1_Click()
Dim hDestDC, x, y, nWidth, nHeight, hSrcDC, xSrc, ySrc, dwRop, RetVal

    hDestDC = Form1.hDC        'handle til formen (som vi tegner på)
    x = 20                      'startpkt på formen (i pixels)
    y = 20                      '-------||-------------
    nWidth = Form1.Picture1.Width / 15      'bredde fra kilden (/15 = twips->pixels)
    nHeight = Form1.Picture1.Height / 15    'højde --------||---------
    hSrcDC = Form1.Picture1.hDC            'handle til picbox (som vi tager fra)
    xSrc = 0                                'startpkt på kilden
    ySrc = 0                                '----------------||---------------
    dwRop = vbSrcCopy                'konstant

    RetVal = BitBlt(hDestDC, x, y, nWidth, nHeight, hSrcDC, xSrc, ySrc, dwRop)

End Sub


Dette tegner billedet fra pictureboxen på formen i 20,20.
Det er naturligvis ikke nødvendigt at bruge BitBlt til dette, men det er kun et
eksempel. Du kan tegne på alle DeviceContexts (f.eks. direkte på skærmen)

Du kan se mere om funktionen her:

http://www.allapi.net/apilist/apifunction.php?apifunction=BitBlt

/tjacob
Avatar billede simon_jacobsen Nybegynder
10. september 2002 - 18:15 #6
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester