Français
Source/ Codesnippets

Bilder Getdibits Manipulation Schnelle Setdibits

 
avec GetDiBits et SetDiBits peux on BMP-Bilder im grenier vite manipuler.
Grobe Beschreibung :
KompilierenMarqueSéparation
bild_h& = Create(hPic, -1, test.bmp)
>
> wird dans den grenier gelesen
KompilierenMarqueSéparation
~GetDIBits(%hdc,bild_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)
>
> Bild wird dans un Bereichsvariable emballé
KompilierenMarqueSéparation
whileloop 128*4*10

    byte bildxy#,&loop=255

endwhil

Bild wird manipuliert avec 128 weißen Pixeln (1 Punkt besteht aus 4 Bytes > RGBA). qui 1.Punkt ist unten à gauche ,1. Reihe. qui Reihen attraper toujours à gauche à. Am besten ist, si on cela BMP-Bild 128x128 Pixel pouvoir, ensuite peux on bien voyons, comment qui unteren 10 Reihen aus weißen Pixeln bestehen.
KompilierenMarqueSéparation
~setDIBits(%hdc,bild_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)
> qui Bereichsvaribale wird wieder sur dem Handle : bild_h& gesetzt
KompilierenMarqueSéparation
drawpic bild_h&,10,10,0
> il peut maintenant cela veränderte Bild im la fenêtre voyons.

avec XPIA/ASM hat on wieder viele möglichkeiten zur Manipulierung
ou bien qui den DEV C++ hat et ASM pas mag, une schnelle DLL-Solution herstellen um den Bereich trop verändern.

qui Demo :
KompilierenMarqueSéparation
 $H Windows.ph
declare bild1$
declare hWin&
Fenêtre 20,20-600,450
Cls @RGB(220,220,220)
bild1$=voiture.bmp
erzeugebild(bild1$)
var ende%=1

WHILE ende%

    sleep 1
    waitkey

ENDWHILE

proc erzeugebild

    parameters namebild$
    declare width%,height%
    declare bild_h&,a&
    declare bmi#,bildxy#
    mcls 0,0,0
    startpaint -1
    mloadbmp namebild$,0,0
    endpaint
    height%=%bmpy
    width%=%bmpx
    def &BI_RGB 0
    def &DIB_RGB_COLORS 0
    struct BITMAPINFOHEADER =
    biSize&, biWidth&, biHeight&, biPlanes%, biBitCount%, biCompression&,
    biSizeImage&, biXPelsPerMeter&, biYPelsPerMeter&, biClrUsed&, biClrImportant&
    dim bmi#,BITMAPINFOHEADER
    clear bmi#

    with bmi#

        .biSize&        = sizeof(bmi#)
        .biWidth&       = width%
        .biHeight&      = height%
        .biPlanes%      = 1
        .biBitCount%    = 32
        .biCompression& = &BI_RGB
        .biSizeImage&   = ((.biWidth& * .biBitCount%  8 - 1) | 3 + 1) * abs(.biHeight&)

    endwith

    bild_h& = Créer(hPic, -1, namebild$)
    drawpic bild_h&,10,10,0
    a&=bmi#.biSizeImage&
    dim bildxy#,a&
    ~GetDIBits(%hdc,bild_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)

    whileloop 128*4*10

        byte bildxy#,&loop=255

    endwhile

    ~setDIBits(%hdc,bild_h&,0,bmi#.biHeight&,bildxy#,bmi#,0)
    drawpic bild_h&,10,150,0
    dispose bmi#
    dispose bildxy#

endproc

 
19.08.2008  
 



super Beitrag et joli erklärt!
 
19.08.2008  
 




Frank
Abbing
So hat iF qui DIBs maintenant enfin aussi verstanden...
 
20.08.2008  
 



je wusste qui journée serait venons...
 
20.08.2008  
 



Im obigen Code était un faute versteckt, j'ai aus
KompilierenMarqueSéparation
height%=%bmpx
width%=%bmpye>

KompilierenMarqueSéparation
height%=%bmpy
width%=%bmpxe>
gemacht.
 
24.02.2009  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.413 Views

Untitledvor 0 min.
H.Brill15.09.2021
AndreasS27.12.2018
Heli9824.06.2017
funkheld12.01.2014
plus...

Themeninformationen

cet Thema hat 3 participant:

iF (3x)
Frank Abbing (1x)
unbekannt (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie