Español
Foro

GDI+

 
- Página 1 -



Georg
Hovenbitzer
¡Hola zusammen,

mich erdrückt gerade una riesige Wissenslücke y yo hoffe ihr könnt me weiterhelfen.
Ziel es, una Bild a invitar, lo a una Thumbnail a verkleiner y luego en uno Datenbank abzulegen.
Mein Problema es nun el Teil zwischen Thumbnail y Datenbank y como el, Yo a una Speicheradresse / Array des Bildes y dessen Größe komme:
Als Presentación Yo el geile GDI+ Demo de Andreas genommen.
 $H \windows.ph
 $H \includes\Functions_GDIPLUS.ph
 $H \includes\GDIP_Imageging.ph
 $I \includes\GDIP_Helper.inc
Declarar gdiplusToken&,ImageObject&,ImageWidth&,ImageHeight&,GraphicObject&
Declarar hPic&
Declarar imgThumb&
Declarar lngImage&
Declarar hBitmap&
Ventana 0,0-1024,786
Cls ~GetSysColor(~COLOR_3DFACE)
gdiplusToken& = InitGDIPlus()
hPic& = @Crear(hPic,-1,Bild.jpg)
~GdipCreateBitmapFromHBITMAP(hPic&,0,@Addr(lngImage&))
~GdipGetImageThumbnail(lngImage&,92,69,@Addr(imgThumb&),0,0)
~GdipCreateHBITMAPFromBitmap(imgThumb&,@Addr(hBitmap&))
DrawPic hBitmap&,50,50;0
hier bräuchte Yo nun algo, qué me una Adresse oder Array y dessen Größe ermittelt !!!
WaitInput
DeleteObject hPic&
DeleteObject hBitmap&
~GdipDisposeImage(imgThumb&)
~GdipDisposeImage(lngImage&)
ExitGDIPlus(gdiplusToken&)
End
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
02.02.2009  
 



 
- Página 2 -


Wollte tiempos de meiner Bmp-Expediente(64x64Pixel) el RGB-Werte auslesen. Das Bild ha 3 verschiedene waagerechte
Farbstreifen(RGB). Lo kommen total falsche Werte 31 0 31, 227 0 227 usw.

Obwohl reine RGB-Werte kommen debería 255 0 0, 0 255 0, 0 0 255 zb.
window 30,30-500,500
 $H Windows.ph
declarar bmi#,b#
declarar Pic$,Handle&,Neu&,wert&,hwin&
Ventana 20,20-200,200
hWin& = Crear(Ventana, %hWnd, Test, 250, 20, 650,500)
Pic$=test.bmp
Handle&=create(hPic,-1,Pic$)
struct bmpHEADER=Size&,Width&,Height&,Planes%,BitCount%,Compression&,SizeImage&,X#(24)
dim bmi#,bmpHEADER
bmi#.Size&=sizeof(bmi#)------------------Größe de BITMAPINFOHEADER
~GetDIBits(%hdc,Handle&,0,0,0,bmi#,0)--Dummy-Aufruf, en bmpHeader a füllen (Rückgabe: 1=OK)
imprimir sizeof(bmi#)
dim b#,bmi#.SizeImage&-----------------Zona para Bildinformationen (Pixel) bereitstellen
~GetDIBits(%hdc,Handle&,0,bmi#.Height&,b#,bmi#,0)--Eigendliche Bilddaten de Handle ermitteln
Neu&=~CreateDIBitmap(%hdc,bmi#,4,b#,bmi#,0)------Neue DIB con geänderten Farben erzeugen
startpaint hwin&
drawpic Neu&,10,10;0
endpaint
wert&=bmi#.SizeImage&

whileloop 0,wert&,4

    imprimir byte(b#,&bucle),byte(b#,&bucle+1),byte(b#,&bucle+2)
    sleep 10

endwhile

 
05.03.2009  
 




Jörg
Sellmeyer
Hast Usted porque el Mapa de bits ya con un externo Programa überprüft? Wenn Yo einfarbige Bitmaps einsetze, voluntad el Werte korrekt ausgegeben.
Hier es mi Mapa de bits


15 kB
Hochgeladen:05.03.2009
Ladeanzahl174
Descargar
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
05.03.2009  
 



El Werte Yo en me überprüft, haben todos valor 255 en R, G y B.
Mit 2 Grafikprogrammen : Paintshop y Micrografx.

mfg
 
05.03.2009  
 



En No.
Zuerst kommt zwar 0 248 0 8x entonces otra vez 224 7 224 8x y 31 0 31 8x el a para schluss.

Zeig veces deine Ausleseprogramm.

mfg
 
05.03.2009  
 



Wohlbemerkt el Werte imho no en el Formato RGB pero BGR vorliegen.
 
05.03.2009  
 



jugando ahora en el Test ningún papel, derweil jede Farbe valor 255 einzeln ha. Zumindest muss el eigentlich con uno pequeño Schwankung seperat rauskommen y no esta Edición oben. Tal vez mi Aufrufreihenfolge falso...

mfg
 
05.03.2009  
 




Jörg
Sellmeyer
Peter Bierbachh
En No.
Zuerst kommt zwar 0 248 0 8x entonces otra vez 224 7 224 8x y 31 0 31 8x el a para schluss.

Zeig veces deine Ausleseprogramm.

mfg


Welches Ausleseprogramm? Yo habs con su Code ausgelesen.
El Mapa de bits es con CorelDraw erstellt.
Zeig doch veces Su Mapa de bits.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
05.03.2009  
 



Im Anhang son el Mapa de bits.

mfg

15 kB
Hochgeladen:05.03.2009
Ladeanzahl172
Descargar
15 kB
Hochgeladen:05.03.2009
Ladeanzahl155
Descargar
 
05.03.2009  
 




E.T.
Eben (wegen todavía-no-schlafen-puede ) veces probiert:
Test1 y Test2.bmp zeigen en me jeweils 255 (Rest 0) para el jeweilige Farbe a (Photoshop y AutoCad). También el bmp de Jörg.

El en el o.g. Quellcode verwendete Test.bmp es probablemente no esta oder ha beim hochladen el Name geändert ??
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
06.03.2009  
 



 
- Página 3 -


Yo habe ahora veces nachgeschaut y festgestellt el el Auflösung en 16bit gelaufen es en lugar de en 32bit.
Yo blanco todavía no welches Programa el beeinflusst.
Mir fiel ahora en, el Yo el Ventana en el Vollbildmodus mover kann en lugar de en el Rändermodus, obwohl Yo vorher en Rändermodus ging en el Grafikkarte. Como Yo entonces auch festgestellt el esta en 16bit stand.

mfg
 
06.03.2009  
 




Jörg
Sellmeyer
Na mostrar a - demnächst gilt also no sólo Minimalnbeispiel puesto, pero igual el ganzen Rechner mitschicken
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.03.2009  
 



Noch una Problema.
Wenn Yo el Mapa de bits kopiere después de neu1& kommt sólo una schwarzes Viereck si yo lo neben el otro Grafik poner.
Muss el auch irgendwie otra vez umgewandelt voluntad?

mfg
window 30,30-500,500
 $H Windows.ph
declarar bmi#,b#
declarar Pic$,Handle&,Neu&,wert&,hwin&,neu1&
Ventana 20,20-200,200
hWin& = Crear(Ventana, %hWnd, Test, 250, 20, 650,500)
Pic$=test.bmp
Handle&=create(hpic,-1,Pic$)
struct bmpHEADER=Size&,Width&,Height&,Planes%,BitCount%,Compression&,SizeImage&,X#(24)
dim bmi#,bmpHEADER
bmi#.Size&=sizeof(bmi#)------------------Größe de BITMAPINFOHEADER
~GetDIBits(%hdc,Handle&,0,0,0,bmi#,0)--Dummy-Aufruf, en bmpHeader a füllen (Rückgabe: 1=OK)
imprimir sizeof(bmi#)
dim b#,bmi#.SizeImage&-----------------Zona para Bildinformationen (Pixel) bereitstellen
~GetDIBits(%hdc,Handle&,0,bmi#.height&,b#,bmi#,0)--Eigendliche Bilddaten de Handle ermitteln
Neu&=~CreateDIBitmap(%hdc,bmi#,4,b#,bmi#,0)------Neue DIB con geänderten Farben erzeugen
startpaint hwin&
drawpic Neu&,0,0;0
endpaint
neu1&=create(hpiccopy,hwin&,0,0,64,64)
startpaint hwin&
drawpic neu1&,100,0;0
endpaint
wert&=bmi#.SizeImage&

whileloop 0,wert&,4

    imprimir byte(b#,&bucle),byte(b#,&bucle+1),byte(b#,&bucle+2)
    sleep 20

endwhile

disponer bmi#
disponer b#
waitkey
 
06.03.2009  
 




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

19.292 Views

Untitledvor 0 min.
Thomas Freier27.08.2019
Georg11.05.2015
Andre Rohland14.02.2015
Uwe ''Pascal'' Niemeier11.12.2014
Más...

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