ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
11437
11437
EMPFEHLEN
-
Hi
ich will in meinem dialog ein jpg bild anzeigen lassen... das file sollte man über einen öffnen dialog selber wählen... dies klappt auch schon, nur das mit der picturebox wollte nicht klappen...
weiss jemand rat?
thx
biba
ps: das bild muss nur angezeigt werden... also nix bearbeiten oder so....
-
21.02.03 13:24 #2
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
sorry das es etwas länger gedauert hat...hab deinen beitrag aber immer noch im hinterkopf gehabt

mehr verweise zu dem thema:http://www.mpdvc.de/html.htm#Q78
7.16 Wie kann ich andere Bitmap-Formate als .bmp anzeigen?
Wenn Bitmapformate außer .bmp benötigt werden, hilft ::LoadBitmap bzw. ::LoadImage nicht weiter. Allerdings stellt Windows mit der API-Funktion ::OleLoadPicture eine Möglichkeit zur Verfügung, diverse Formate (JPEG, GIF, WMF, ICO etc.) zu laden. Die Funktion liefert ein IPicture-Interface, welches genutzt werden kann, das geladene Grafikformat auf den übergebenen DC zu zeichnen (IPicture::Render).
Für MFC-Anwender gibt es unter Code Project eine erweiterte Bitmapklasse (CEnBitmap), die ::OleLoadPicture/IPicture kapselt (CEnBitmap::LoadImage), die sich aber ansonsten wie CBitmap verhält.
Das folgende Beispiel zeigt das Laden eines Bildes mit LoadPicture und die Ausgabe mit DrawPicture:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
LPPICTURE pPicture; long lWidth, lHeight; int iWidth, iHeight; BOOL LoadPicture(LPCTSTR pszFileName) { //datei öffnen HANDLE hFile = CreateFile(pszFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); if(INVALID_HANDLE_VALUE == hFile) return FALSE; //datei größe ermitteln DWORD dwFileSize = GetFileSize(hFile, NULL); //speicher in größe der datei allokieren HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize); LPVOID pvData = GlobalLock(hGlobal); //datei lesen u. im speicher behalten DWORD dwBytesRead = 0; BOOL bRead = ReadFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL); if(!bRead) return FALSE; GlobalUnlock(hGlobal); CloseHandle(hFile); //IStream* aus dem speicher erzeugen LPSTREAM pstm = NULL; HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pstm); //IPicture vom bild erzeugen if(pPicture) pPicture->Release(); hr = OleLoadPicture(pstm, dwFileSize, FALSE, IID_IPicture, (LPVOID*)&pPicture); pstm->Release(); //breite u. höhe vom bild holen pPicture->get_Width(&lWidth); pPicture->get_Height(&lHeight); HDC hdc = CreateIC(TEXT("DISPLAY"), NULL, NULL, NULL); //in Pixel konvertieren iWidth = (lWidth * GetDeviceCaps(hdc, LOGPIXELSX)) / 2540; iHeight = (lHeight * GetDeviceCaps(hdc, LOGPIXELSY)) / 2540; return TRUE; } BOOL DrawPicture(HWND hwnd, HDC hdc) { if(pPicture) //wenn bild geladen { RECT rc; GetClientRect(hwnd, &rc); //Bild anzeigen mittels Render pPicture->Render(hdc, 0, 0, iWidth, iHeight, 0, lHeight, lWidth, -lHeight, &rc); return TRUE; } return FALSE; }
http://www.codeproject.com/useritems/ExtendedBitmap.asp
http://msdn.microsoft.com/library/de..._ol2z_0k4l.asp
http://msdn.microsoft.com/library/de...tin_p_482t.asp
http://msdn.microsoft.com/msdnmag/is...c/default.aspx
-
hey merci...
werd es so bald wie möglich ausprobieren...
schöns wuchenend
-
Hi Joki,
stehe vor einem ähnlichen Problem, d.h. ich würde gerne in meiner Dialoganwendung ein beliebiges JPG anzeigen.
Den Code deiner Funktion LoadPicture habe ich verstanden und erfolgreich eingefügt. Ich schaffe es ein Bild zu laden (Pixel werden z.B. korrekt in den Variablen angezeigt).
Allerdings hab ich ein ungelöstest Problem. Wie zeige ich nun das geladene JPG in meiner Dialoganwendung an? Mache erst erste Schritte mit der MFC und stehe wohl deshalb auf dem Schlauch.
Ich würde mich über ein paar hilfreich Angaben freuen. Vielen Dank schon mal im vorraus.
Gruß Michael
Ähnliche Themen
-
Bild URL aus XML anzeigen lassen?!
Von warstel im Forum Flash PlattformAntworten: 5Letzter Beitrag: 17.02.10, 16:01 -
Bild im Panel anzeigen lassen
Von blackrose4me im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 04.12.08, 12:41 -
Nur bestimmtes Bild aus Verzeichnis anzeigen lassen
Von ArcaDe im Forum PHPAntworten: 2Letzter Beitrag: 05.07.06, 23:56 -
Bild anzeigen lassen?
Von tesarolle im Forum PHPAntworten: 2Letzter Beitrag: 13.05.05, 14:12 -
Bild aus Datenbank anzeigen lassen****
Von laempisch im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 04.07.03, 13:26





Zitieren
Login






