Français
Forum

Grafikfrage des Tages ...

 
voudrais vom ScreenHandle "hWin& = @Créer("text", %hWnd, "Test1", 10, 10, 400,400)" un Ausschnitt ab x=200, y=200 avec qui Breite=128 et Höhe=128 schnellstmöglich dans einem avec "Create" erstellten Bildhandle& kopieren zur Auswertung.

mfg
peter
 
25.08.2008  
 




Rolf
Koch
??? allô Peter, qui Frage la hâte Du doch déjà ici gestellt: [...] 
et quoi iF là avec qui Signatur meinte: [...] 
 
25.08.2008  
 




Jörg
Sellmeyer
Na, cela avec qui Signatur hat il maintenant oui. Hat Dir car iFs Antwort pas weitergeholfen? je hab encore pas entier verstanden, quoi tu veux. ici la fois schématique
KompilierenMarqueSéparation
Cls
Var txt& = Create("Text",%hwnd,"Test",10,10,400,400)
MCLS 128,128
MCopyBmp (10 + 200), (10 + 200) - 0,0,0
Var hBmp& = Create("hPic",0,"&MEMBMP")/pre>



"& MEMBMP" - Es wird une Bitmapkopie avec qui aktuellen avec MCLS ou bien MLOADBMP erzeugten Speicherbitmap erstellt.


ist maintenant allerdings pas getestet, mais seulement so zusammengeschrieben.
Hilft Dir cela erstmal plus?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
26.08.2008  
 



Jup, merci Jörg.

on darf pas soweit penser.

qui Bildschirmausschnitt qui beginnend chez X1,Y1 une Breite de X2 Pixel et une Hauteur de Y2 Pixel hat, wird aus dem avec MLoadBmp geladenem Bild à qui Position X3,Y3 kopiert.


ici J'ai eu mich festgebissen dans qui Beschreibung "...à qui Position X3,Y3 kopiert.....", cela cet Copy seulement sur den sichtbaren la fenêtre copiert wird et pas dans inem Handle reingepackt volonté peux.

Moin Rolf, je begrüsse toi.

mfg
peter
 
26.08.2008  
 



Nie aufgeben Peter ! était un schweres unterfangen.

maintenant klappt es, une beliebigen Bildauschnitt 128X128 Pixel im laufenden Programmablauf vom la fenêtre sur qui linken page avec BitBlt dans un DIB trop apporter et ensuite qui Bereichsvariable auslesen(wird ici pas durchgeführt cela Lecture).
dans qui Tandis que-loop wird comme Beispiel avec BitBlt dans qui DC-idc& qui iBitmap&, qui Grafikbereich lire, (sans Umwandlung dans un DC ca va pas).
avec GetDiBits wird qui iBitmap&(maintenant pas qui DC) dans qui Bereichsvariable gelesen.
et avec SetDIBitsToDevice peux on aussi direct qui Bereichsvariable de XProfan sur cela la fenêtre apporter comme Bild, sans ca umzuwandeln. Wird sur qui rechten page dargestellt.
qui Geschwindigkeit pour qui 3 Befehle dans qui Boucle pour une Durchgang knapp 4ms et pour qui ersten 2 Befehle, qui je seulement brauche, sans Bilddarstellung sommes es 1ms

Hat une grossen Lerneffekt gehabt avec den API-Befehlen.

mfg
peter
KompilierenMarqueSéparation
 $H Windows.ph
Window 20,20-800,600
Cls @RGB(220,220,220)
var hWin& = @Create("text", %hWnd, "Test0", 10, 10, 600,400)
declare bmi#
declare bild#
dim bild#,128*128*4
var width%=128
var height%=128
bitmap_header()
startpaint hWin&
loadbmp "tile1.bmp",0,0,0
endpaint
var hdc&=~GetDC(hWin&)
var iDC&=~CreateCompatibleDC(hDC&)
var iBitmap& = ~CreateDIBSection(idc&, bmi#, ~DIB_RGB_COLORS, 0,0,0)
~SelectObject(iDC&, iBitmap&)

whileloop 0,120,1

    ~Bitblt(idc&,0,0,128,128,hdc&,0+&loop,0+&loop,~SRCCOPY)
    ~GetDIBits(hdc&,iBitmap&,0,128,bild#,bmi#,~DIB_RGB_COLORS)
    ~SetDIBitsToDevice(hdc&, 350, 0, width%, height%, 0, 0, 0, 128, bild#,bmi#, ~DIB_RGB_COLORS)
    sleep 1

endwhile

waitkey
end

proc bitmap_header

    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

endproc


4 kB
Hochgeladen:27.08.2008
Downloadcounter60
Download
 
27.08.2008  
 



c'est pourquoi aussi avec XProfan11 (zum Glück) deutlich vereinfacht là on beliebige hPics beziehen peux.
 
27.08.2008  
 



cet 3 Befehle ersetzen quasi den de dir erwähnten :
KompilierenMarqueSéparation
var hdc&=~GetDC(hWin&)
va r iDC&=~CreateCompatibleDC(h DC&)
var iBitmap& = ~CreateDIBSection(idc&, bmi#, ~DIB_RGB_COLORS, 0,0,0)re>

Pour den GetDibits et SetDIBitsToDevice finde je aucun schnellere Solution comme XProfanbefehl.

sur gehts...., zum prochain Erfolg. pas fatigué volonté.
Habe déjà viel gelernt.

mfg
peter
 
27.08.2008  
 



si cette Befehl de XProfan11 :
bitmaphandle& = create("hPicCopy", hPic&[, x%, y%, dx%, dy%])
aussi une directe Kopie vom ablaufenden la fenêtre faire peux, ensuite ist es un plus beau Fortschritt ou bien on ensuite aussi plusieurs MCLS anlegen peux zum schnellen zwischenspeichern.

mfg
peter
 
27.08.2008  
 



c'est pourquoi allez oui aussi quelque chose comme: [...] 
 
27.08.2008  
 



Irgendwann si Roland aus dem Urlaub ist, voulais il meinen Antrag sur XProfan11 Travailler.
Läuft déjà.

mfg
peter
 
28.08.2008  
 



répondre


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

1.049 Views

Untitledvor 0 min.

Themeninformationen



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