| |
|
|
| Möchte vom ScreenHandle "hWin& = @Crear("text", %hWnd, "Test1", 10, 10, 400,400)" una Ausschnitt de x=200, y=200 con el Breite=128 y Höhe=128 schnellstmöglich en un con "Create" erstellten Bildhandle& kopieren a Auswertung.
mfg peter |
|
|
| |
|
|
|
Rolf Koch | ??? ¡Hola Peter, el Cuestión hast Usted doch ya hier gestellt: [...] y qué IF hay con el Signatur meinte: [...] |
|
|
| |
|
|
|
Jörg Sellmeyer | Na, el con el Signatur ha él ahora sí. Sombrero Usted porque iFs Antwort no weitergeholfen? Yo todavía no bastante verstanden, qué Usted willst. Hier veces schematisch KompilierenMarcaSeparaciónCls
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" - Lo se una Bitmapkopie con el aktuellen con MCLS oder MLOADBMP erzeugten Speicherbitmap erstellt.
es ahora allerdings no getestet, pero sólo así zusammengeschrieben. Hilft Usted el primero más? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 26.08.2008 ▲ |
|
|
|
|
| Jup, danke Jörg.
Man darf no soweit denken.
Der Bildschirmausschnitt el beginnend en X1,Y1 una Breite de X2 Pixel y una Höhe de Y2 Pixel ha, se de el con MLoadBmp geladenem Bild a el Position X3,Y3 kopiert.
Hier Tuve mich festgebissen en el Descripción "...a el Position X3,Y3 kopiert.....", el esta Copy sólo en el sichtbaren Ventana copiert se y no en inem Handle reingepackt voluntad kann.
Moin Rolf, Yo begrüsse dich.
mfg peter |
|
|
| |
|
|
|
| Nie aufgeben Peter ! War una schweres unterfangen.
Jetzt klappt lo, una beliebigen Bildauschnitt 128X128 Pixel en el laufenden Programmablauf vom Ventana en el linken Página con BitBlt en un DIB a bringen y luego el Bereichsvariable auslesen(se hier no durchgeführt el Auslesen). In el Mientras que-bucle se como Ejemplo con BitBlt en el DC-idc& el iBitmap&, el Grafikbereich eingelesen, (sin Umwandlung en un DC es no). Mit GetDiBits se el iBitmap&(ahora no el DC) en el Bereichsvariable gelesen. Und con SetDIBitsToDevice puede ser auch direkt el Bereichsvariable de XProfan el Ventana bringen como Bild, sin dies umzuwandeln. Wird en el rechten Página dargestellt. El Geschwindigkeit para el 3 Befehle en el Bucle para una Durchgang knapp 4ms y para el ersten 2 Befehle, el Yo sólo brauche, sin Bilddarstellung son lo 1ms
Sombrero una grossen Lerneffekt gehabt con el API-Befehlen.
mfg peter KompilierenMarcaSeparación $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
|
|
|
| |
|
|
|
| Deshalb auch con XProfan11 (para Glück) deutlich vereinfacht como uno beliebige hPics beziehen kann. |
|
|
| |
|
|
|
| Diese 3 Befehle sustituir quasi el de dir erwähnten : KompilierenMarcaSeparación Für el GetDibits y SetDIBitsToDevice finde Yo no schnellere Solución como XProfanbefehl.
Auf gehts...., para nächsten Erfolg. No müde voluntad. Posesiones ya viel gelernt.
mfg peter |
|
|
| |
|
|
|
| Wenn dieser Befehl de XProfan11 : bitmaphandle& = create("hPicCopy", hPic&[, x%, y%, dx%, dy%]) auch una direkte Kopie vom ablaufenden Ventana hacer kann, entonces lo una schöner Fortschritt oder una continuación auch mehrere MCLS invertir kann para schnellen zwischenspeichern.
mfg peter |
|
|
| |
|
|
|
| Deshalb va en efecto algo como: [...] |
|
|
| |
|
|
|
| Irgendwann si Roland de el Fiesta es, quería él media Antrag en XProfan11 bearbeiten. Läuft ya.
mfg peter |
|
|
| |
|
|