| |
|
|
| 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 |
|
|
| |
|
|
|
Rolf Koch | ??? allô Peter, qui Frage la hâte Du doch déjà ici gestellt: [...] et quoi iF là avec qui Signatur meinte: [...] |
|
|
| |
|
|
|
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éparationCls
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 |
|
|
| |
|
|
|
| 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
|
|
|
| |
|
|
|
| c'est pourquoi aussi avec XProfan11 (zum Glück) deutlich vereinfacht là on beliebige hPics beziehen peux. |
|
|
| |
|
|
|
| cet 3 Befehle ersetzen quasi den de dir erwähnten : KompilierenMarqueSéparation 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 |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
| c'est pourquoi allez oui aussi quelque chose comme: [...] |
|
|
| |
|
|
|
| Irgendwann si Roland aus dem Urlaub ist, voulais il meinen Antrag sur XProfan11 Travailler. Läuft déjà.
mfg peter |
|
|
| |
|
|