Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » bild darstellen?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.06.2005, 14:36 Uhr
~Lee
Gast


hi... hab ne frage:

ist es moeglich ein bild (jpg, bmp oder gif... is egal) darzustellen... und wenn ja... wie?

mfg
Lee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.06.2005, 14:56 Uhr
Spacelord
Hoffnungsloser Fall


IPicture kann diese Formate anzeigen.
Such mal bei google danach.
Im Prinzip brauchst du OleLoadPicture und CreateStreamOnHGlobal um deine IPicture Instanz startklar zu machen.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.06.2005, 15:45 Uhr
~Lee
Gast



C++:
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;
}


das hab ich jezz dazu gefunden... und kann mir jmd erklaeren wie genau ich ein bild (z.b. bsp.jpg) darstelle und zwar bei den und den koordinaten ( z.b. diagonal: 100 ,vertikal: 200)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.06.2005, 15:51 Uhr
Spacelord
Hoffnungsloser Fall


Über die RECT Struktur die du als letzten Parameter an Render übergibst.
Die MSDN-Dokumentation ist dein Freund...

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.06.2005, 16:02 Uhr
~Lee
Gast


kannst du mir nen "bsp quelltext" oder so schreiben... weil ich kann mit deinem letzten beitrag nicht wirklich viel anfangen <:
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.06.2005, 17:34 Uhr
Spacelord
Hoffnungsloser Fall


Anstelle von GetClientRect(in DrawPicture)
legst du halt ne RECT Struktur an die dem Rechteck des Bildschirms entspricht in das du zeichnen möchtest.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.06.2005, 21:00 Uhr
~Lee
Gast


das sind die koordinaten... und wo muss ich denn das bild reinmachen ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: