| |
|
|
- page 1 - |
|
Georg Hovenbitzer | allô zusammen,
mich erdrückt justement une riesige Wissenslücke et je hoffe vous pouvez mir weiterhelfen. but ist es, un Bild trop magasin, es trop einem Thumbnail trop verkleiner et ensuite dans einer banque de données abzulegen. mon Problem ist eh bien qui partie entre Thumbnail et banque de données et là qui, comment je à une Speicheradresse / Array des Bildes et dessen Taille viens: comme Présentation habe je cela geile GDI+ Demo de Andreas pris.
$H \windows.ph
$H \includes\Functions_GDIPLUS.ph
$H \includes\GDIP_Imageging.ph
$I \includes\GDIP_Helper.inc
Déclarer gdiplusToken&,ImageObject&,ImageWidth&,ImageHeight&,GraphicObject&
Déclarer hPic&
Déclarer imgThumb&
Déclarer lngImage&
Déclarer hBitmap&
Fenêtre 0,0-1024,786
Cls ~GetSysColor(~COLOR_3DFACE)
gdiplusToken& = InitGDIPlus()
hPic& = @Créer(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
ici bräuchte je eh bien quelque chose, quoi mir une Adresse ou bien Array et dessen Taille ermittelt !!!
WaitInput
DeleteObject hPic&
DeleteObject hBitmap&
~GdipDisposeImage(imgThumb&)
~GdipDisposeImage(lngImage&)
ExitGDIPlus(gdiplusToken&)
Fin
|
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 02.02.2009 ▲ |
|
|
|
|
| |
|
- page 2 - |
|
| voulais la fois de meiner Bmp-Dossier(64x64Pixel) qui RGB-Werte auslesen. cela Bild hat 3 verschiedene waagerechte Farbstreifen(RGB). Es venons total falsche Werte 31 0 31, 227 0 227 usw.
quoique reine RGB-Werte venons devoir 255 0 0, 0 255 0, 0 0 255 zb.
window 30,30-500,500
$H Windows.ph
declare bmi#,b#
declare Pic$,Handle&,Neu&,wert&,hwin&
Fenêtre 20,20-200,200
hWin& = Créer(Fenêtre, %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#)------------------Taille de BITMAPINFOHEADER
~GetDIBits(%hdc,Handle&,0,0,0,bmi#,0)--Dummy-Aufruf, um bmpHeader trop füllen (Rückgabe: 1=OK)
imprimer sizeof(bmi#)
dim b#,bmi#.SizeImage&-----------------Bereich pour Bildinformationen (Pixel) bereitstellen
~GetDIBits(%hdc,Handle&,0,bmi#.Height&,b#,bmi#,0)--Eigendliche Bilddaten aus Handle ermitteln
Neu&=~CreateDIBitmap(%hdc,bmi#,4,b#,bmi#,0)------Neue DIB avec modifié Farben erzeugen
startpaint hwin&
drawpic Neu&,10,10;0
endpaint
wert&=bmi#.SizeImage&
whileloop 0,wert&,4
imprimer byte(b#,&loop),byte(b#,&loop+1),byte(b#,&loop+2)
sleep 10
endwhile
|
|
|
| |
|
|
|
Jörg Sellmeyer | la hâte Du car qui Bitmap déjà avec einem externe Programme überprüft? si je einfarbige Bitmaps einsetze, volonté qui Werte korrekt ausgegeben. ici ist mon Bitmap
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.03.2009 ▲ |
|
|
|
|
| qui Werte habe je chez mir überprüft, avons alle la valeur 255 dans R, G et B. avec 2 Grafikprogrammen : Paintshop et Micrografx.
mfg |
|
|
| |
|
|
|
| chez Je ne. d'abord venez zwar 0 248 0 8x ensuite wieder 224 7 224 8x et 31 0 31 8x cela jusqu'à zum schluss.
Zeig la fois deine Ausleseprogramm.
mfg |
|
|
| |
|
|
|
| Wohlbemerkt qui Werte imho pas im Format RGB mais BGR vorliegen. |
|
|
| |
|
|
|
| jouer maintenant im Test aucun rôle, derweil chacun la couleur la valeur 255 einzeln hat. Zumindest muss cela eigentlich avec einer kleinen Schwankung seperat rauskommen et pas cet Ausgabe dessus. Peut-être mon Aufrufreihenfolge faux...
mfg |
|
|
| |
|
|
|
Jörg Sellmeyer | Peter Bierbachh
chez Je ne. d'abord venez zwar 0 248 0 8x ensuite wieder 224 7 224 8x et 31 0 31 8x cela jusqu'à zum schluss.
Zeig la fois deine Ausleseprogramm.
mfg
Welches Ausleseprogramm? je habs avec Deinem Code ausgelesen. qui Bitmap ist avec CorelDraw erstellt. Zeig doch la fois Votre Bitmap. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.03.2009 ▲ |
|
|
|
|
| Im Anhang sommes qui Bitmap.
mfg |
|
|
| |
|
|
|
E.T. | plan (à cause de encore-pas-dormir-peut ) la fois probiert: Test1 et Test2.bmp montrer chez mir jeweils 255 (reste 0) pour qui jeweilige la couleur à (Photoshop et AutoCad). Ebenso qui bmp de Jörg.
qui im o.g. Quellcode verwendete Test.bmp ist wohl pas dabei ou bien hat beim hochladen den nom 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 ▲ |
|
|
|
| |
|
- page 3 - |
|
|
| j'ai maintenant la fois nachgeschaut et festgestellt cela qui Auflösung sur 16bit gelaufen ist statt sur 32bit. je weiss encore pas welches Programme cela beeinflusst. Mir fiel maintenant sur, le moi qui la fenêtre im Vollbildmodus Déplacer peux statt im Rändermodus, quoique je auparavant sur Rändermodus ging sur qui Grafikkarte. là habe je ensuite aussi festgestellt cela cet sur 16bit stand.
mfg |
|
|
| |
|
|
|
Jörg Sellmeyer | Na exposition à - bientôt gilt alors pas seulement Minimalnbeispiel posten, mais juste den ganzen calculateur mitschicken |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 06.03.2009 ▲ |
|
|
|
|
| encore un Problem. si je qui Bitmap kopiere pour récente1& venez seulement un schwarzes Viereck si je es près de qui anderen Grafik mets. Muss cela aussi irgendwie wieder umgewandelt volonté?
mfg
window 30,30-500,500
$H Windows.ph
declare bmi#,b#
declare Pic$,Handle&,Neu&,wert&,hwin&,récente1&
Fenêtre 20,20-200,200
hWin& = Créer(Fenêtre, %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#)------------------Taille de BITMAPINFOHEADER
~GetDIBits(%hdc,Handle&,0,0,0,bmi#,0)--Dummy-Aufruf, um bmpHeader trop füllen (Rückgabe: 1=OK)
imprimer sizeof(bmi#)
dim b#,bmi#.SizeImage&-----------------Bereich pour Bildinformationen (Pixel) bereitstellen
~GetDIBits(%hdc,Handle&,0,bmi#.height&,b#,bmi#,0)--Eigendliche Bilddaten aus Handle ermitteln
Neu&=~CreateDIBitmap(%hdc,bmi#,4,b#,bmi#,0)------Neue DIB avec modifié Farben erzeugen
startpaint hwin&
drawpic Neu&,0,0;0
endpaint
neu1&=create(hpiccopy,hwin&,0,0,64,64)
startpaint hwin&
drawpic récente1&,100,0;0
endpaint
wert&=bmi#.SizeImage&
whileloop 0,wert&,4
imprimer byte(b#,&loop),byte(b#,&loop+1),byte(b#,&loop+2)
sleep 20
endwhile
dispose bmi#
dispose b#
waitkey
|
|
|
| |
|
|