biler von der festplatte im programm anzeigen

  • C++

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • biler von der festplatte im programm anzeigen

    servus

    ich muss für die schule ein c++ und datenbankprojekt machen. bin auch schon fast fertig damit.
    hab nur ein problem:

    unzwar will ich bilder, die ich in meinem "eigene Bilder" Ordner habe in meinem c++ programm anzeigen. das ganze soll während der laufzeit passieren. der user kann sich ein auto aussuchen und kriegt dazu die eckdaten und ein bild gezeigt.
    ich benutze den borland c++ compiler version 5. (ich muss den benutzten, weil wir den auch in der schule haben).

    kann mir da einer von euch helfen?
  • Als erstes solltest du dir überlegen welche Bildformate du anzeigen lassen willst, weil du für jedes Bildformat ne Importklasse brauchst. Ansonsten kann dein Programm nichts mit den Bildformaten anfangen. Ein Bild besteht immer aus einem Bildheader (in dem die Informationen zu dem Bild stehen) und aus den Bilddaten selbst, wobei diese dann nur aus der Pixelposition und dem jeweiligen Farbwert bestehen. Ist wie ne Matrix. Dann kommen noch spezielle Kodierverfahren bei bspw. JPG und GIF dazu.

    Am einfachsten ist es, wenn du dir die Klassen aus dem Internet holst (gibts wie Sand am Meer), selbst programmieren ist ein ganz schöner Akt, wenn man einige Bildformate verarbeiten will.

    Wenn du dann erstmal die Klassen hast und die dann auch eingearbeitet sind ist es relativ billig die Anzeige zu programmieren.

    Ciao :lego:
    [SIZE=1]Dumme Antworten sind rein zufällig und auf einen Fehler in der Speicherverwaltung zurückzuführen
    [/SIZE]
  • erstmal danke für deine hilfe

    ich dachte eher an sowas wie: Bei Borland c++ builder gibts ein tool das heisst Timage. damit kann man bilder, als jpeg oder bmp, anzeigen. aber ich kann das nicht während der laufzeit, weil ich die funktion nicht weiss, die ich dazu aufrufen muss und welche werte ich ihr übergeben soll. da gibts einen Wert der heisst LoadImage, aber irgendwie werde ich daruas nicht schlau.

    was für ne klasse oder klassen soll ich mir den ziehen , also wie heissen sie?
  • hier ist schonmal der Code für JPEGs und für GIFs. Für das Gif findest du die Klasse hier.

    C-Quellcode

    1. #include <jpeg.hpp>
    2. #include <gifimage.hpp>
    3. TJPEGImage *jpg = new TJPEGImage();
    4. jpg->Assign(Image1->Picture->Bitmap);
    5. jpg->LoadFromFile("bild.jpg");
    6. Image2->Picture->Assign(jpg);
    7. delete jpg;
    8. TGIFImage *gif = new TGIFImage();
    9. gif->Assign(Image1->Picture->Bitmap);
    10. gif->LoadFromFile("bild.gif");
    11. Image3->Picture->Assign(gif);
    12. delete gif;
    Alles anzeigen


    Ciao :lego:
    [SIZE=1]Dumme Antworten sind rein zufällig und auf einen Fehler in der Speicherverwaltung zurückzuführen
    [/SIZE]
  • Wenn dus richtig groß angehen willst würd ich sagen CxImage, da kannste mal hier gucken: codeproject.com/bitmap/cximage.asp

    Ansonsten reicht für normale .bmp's auch die Windows API.

    Erklärung für LoadImage findest du hier:
    msdn.microsoft.com/library/def…cefunctions/loadimage.asp

    Das müsste also ungefähr so aussehen:
    HANDLE mybmp = LoadImage(hinstance, myfile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE)
    Wobei myfile halt der String-Pointer ist (wenn du string nimmst dann myfile.c_str(), bei cstrings nur myfile) und hinstance die entsprechende HINSTANCE des Fensters.

    So ganz zufrieden bin ich damit übrigens selber nicht, aber den Rest auch noch rauszusuchen ist vllt eher deine Aufgabe. ;)
  • big thx an euch beide, aber mich da reinzusteigern dauert zu lange ich brauch das programm bereits morgen.

    ich hab herausgefunden, dass ich mit

    Image1->Picture->LoadFromFile("bild.jpg")

    ein bild laden kann. nur ich brauch eine variable da drin.
    und wenn ich
    z.b:

    Image1->Picture->LoadFromFile( Edit1->Text + ".jpg")

    eingebe gibt er mir nen fehler. von wegen: ) fehlt beim Funktionsaufruf
  • caste den Inhalt des Textfeldes in einen normalen String, hänge dort beim casten gleich das ".jpg" dran und schreib die Variable dann bei LoadFromFile rein.

    Ciao :lego:
    [SIZE=1]Dumme Antworten sind rein zufällig und auf einen Fehler in der Speicherverwaltung zurückzuführen
    [/SIZE]