Español
Foro

Grafikfrage des Tages ...

 
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
 
25.08.2008  
 




Rolf
Koch
??? ¡Hola Peter, el Cuestión hast Usted doch ya hier gestellt: [...] 
y qué IF hay con el Signatur meinte: [...] 
 
25.08.2008  
 




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ón
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" - 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
 
26.08.2008  
 



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


4 kB
Hochgeladen:27.08.2008
Ladeanzahl60
Descargar
 
27.08.2008  
 



Deshalb auch con XProfan11 (para Glück) deutlich vereinfacht como uno beliebige hPics beziehen kann.
 
27.08.2008  
 



Diese 3 Befehle sustituir quasi el de dir erwähnten :
KompilierenMarcaSeparación
var hdc&=~GetDC(hWin&)
va r iDC&=~CreateCompatibleDC(h DC&)
var iBitmap& = ~CreateDIBSection(idc&, bmi#, ~DIB_RGB_COLORS, 0,0,0)re>

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
 
27.08.2008  
 



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
 
27.08.2008  
 



Deshalb va en efecto algo como: [...] 
 
27.08.2008  
 



Irgendwann si Roland de el Fiesta es, quería él media Antrag en XProfan11 bearbeiten.
Läuft ya.

mfg
peter
 
28.08.2008  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.050 Views

Untitledvor 0 min.

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie