| |
|
|
- 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
|
|
|
| |
|
|
|
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
|
|
|
| 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 |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
| Wohlbemerkt el Werte imho no en el Formato RGB pero BGR vorliegen. |
|
|
| |
|
|
|
| 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 |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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 |
|
|
| |
|
|
|
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
|
|
|
| |
|
|