Bild properties
-
Wenn man die properties eines Bildes anschaut dann hat es Einträge wie z.B Image-width oder Image-height.
Wie kann man diese Werte auslesen?
mfg simu
-
Kommt darauf an, was für ein Bild das ist - die meisten Datentypen (BMP, JPEG, GIF etc) beginnen mit einem Header, wo in bestimmter Reihenfolge solche Informationen drinstehen.
-
es sind bmp-files.
ich habe ehrlich gesagt keine ahnung wie ich das mache?
hast du zufälligerweise einen link wo das beschrieben ist?danke für die antwort
-
BMP hatte ich doch neulich erst - reicht dir diese Liste als Orientierungshilfe?
-
Ich denke mal simu87 benutzt entweder den Borland Builder oder Visual Studio und meint einen Wert, den man in der Oberfläche einstellt.
Also verrat uns doch einfach mal, wo mit du arbeitest, und dann wird das Thema in das entsprechende Forum verschoben.
-
ja ich benutze visual studion, aber ich meine nicht die Werte die man in der Oberfläche einstellen würde, sondern diejenigen die CStoll als Link geschickt hat.
Danke für den Link. Es scheint zimlich komplex mit diesem Header

Wäre ein bischen viel verlangt, wenn ich von dir ein Beispiel verlange.
Darum gehe ich mal goooglen.mfg simu
-
Einfachste Variante in Deinem Fall wäre es einfacher, wenn du einfach ein paar Image-Tools nimmmst (ATL CImage, oder auf codeproject.com CXImage) und dann einfach Die MFC bemühst um die Bildgröße auszulesen. z.B. CBitmap::GetBitmap.
Wie du schon festgestellt hast ist es nicht so einfach und eh du alle Bildfromate verstanden hast bist du alt und grau :).
Außerdem passt der Beitrag besser ins MFC-Forum.
-
hehe! ich muss das ausschliesslich mit bmp-files machen
von dem her bin ich noch lange nicht alt und grau bis ich das verstanden habe
Ich habe etwas zusammengebastelt, was mir z.B width und height gibt
FILE *fMyBitmap; BITMAPFILEHEADER bmfh; BITMAPINFOHEADER bmih; WORD bfType; WORD biBitCount; LONG biWidth; LONG biHeight; DWORD biClrUsed; DWORD biClrImportant; fMyBitmap = fopen(i_sPath,"rb"); fread(&bmfh,sizeof(BITMAPFILEHEADER),1,fMyBitmap); fread(&bmih,sizeof(BITMAPINFOHEADER),1,fMyBitmap); bfType = bmfh.bfType; biHeight = bmih.biHeight; biWidth = bmih.biWidth; biBitCount = bmih.biBitCount; biClrUsed = bmih.biClrUsed; biClrImportant = bmih.biClrImportant;Ich möchte aber noch herausfinden ob es Gray-scale , RGB oder was auch immer ist!! Weiss zufälligerweise jemand wie man das anstellt?
-
hehe! ich muss das ausschliesslich mit bmp-files machen
Glück gehabt.

Naja, Grauwert ist es, wenn die bittiefe == 8Bit ist und das Bild keine Farbpalette hat. Bei Bitiefe von 16Bit ist es immer farbe und hat eine Farbtabelle, weil Bitmaps keien 16 bit Grauwert unterstützen und alles >= 24 Bit ist RGB, oder bei 32Bit halt RGB + Alpha.
der Thread gehört jetzt aber endgültig ins WINAPI - Forum. Dort gab es seinerzeit mla Leute die sich miut sowas wirklich auskennen
.
-
mit diesem code sollte ich schlussendlich in 'colours' die Farbpalette haben.
Bei einem Bild welches Palettized ist erhalte ich aber bei allen RGB-Werten eine 0 ?!?
Was mach ich falsch? oder wie sollte man denn die Farbpalette herausfinden?FILE *fMyBitmap; BITMAPFILEHEADER bmfh; BITMAPINFOHEADER bmih; WORD numColours; RGBQUAD *colours; fMyBitmap = fopen(i_sPath,"rb"); fread(&bmfh,sizeof(BITMAPFILEHEADER),1,fMyBitmap);^ fread(&bmih,sizeof(BITMAPINFOHEADER),1,fMyBitmap); numColours=1 << bmih.biBitCount; if(bmih.biBitCount == 8) { colours=new RGBQUAD[numColours]; fread(colours,sizeof(RGBQUAD),numColours,fMyBitmap); }
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.