Bildgröße vorgeben und speichern



  • Hallo!

    Es sollte gerne ein BMP-Bild geladen werden, und dies in einer Größe von 100x100 Pixel als JPG-Bild gespeichert werden (und zwar "gestretched")

    Folgenden Code habe ich jetzt:

    Graphics::TBitmap* bmp = new Graphics::TBitmap;
          TJPEGImage* jpg = new TJPEGImage;
          bmp->LoadFromFile("C:\\beispiel.bmp");
          bmp->Height = 100;
          bmp->Width = 100;
          jpg->Assign(bmp);
          jpg->SaveToFile("C:\\beispiel1.jpg");
          delete jpg;
          delete bmp;
    

    Dies funktioniert "fast" so, wie ich das möchte: Es wird das BMP-Bild problemlos als jpg gespeichert - auch die Größe von 100x100 Pixel stimmt - NUR wird das Bild nicht auf diese 100x100 Pixel gestretcht.
    Es wird immer der mittlere Ausschnitt von 100 mal 100 Pixel verwendet.

    Eine Eigenschaft wie bmp->Stretch = True gibts leider nicht 😞

    Hat jemand einen Lösungsvorschlag? Würde mich sehr freuen!

    tschüss
    Robert



  • Du brauchst ein zweites Bitmap (100x100) auf dessen Canvas du dann mittels stretchdraw das bmp kopierst (von der quelle die Maaße NICHT ändern).
    dieses dann als jpeg speichern.



  • jpg->StretchDraw(jpg->ClientRect,bmp);



  • Original erstellt von <Omega-X>:
    jpg->StretchDraw(jpg->ClientRect,bmp);

    Wenn du jemandem helfen willst, Omega, dann schreib bitte lieber nichts als so einen Blödsinn!!



  • Hallo!

    Vielen besten Dank!! Funktioniert!!

    tschüss
    Robert



  • *Iiii*, das is ja schon peinlich. 😞 Wenn es schon so schlimm geworden ist, sollte man aufhören.

    jpg->Canvas->StretchDraw(jpg->ClientRect,bmp);

    Vorher jpg auf die Größe von bmp bringen.



  • Original erstellt von <Omega-X>:
    jpg->Canvas->StretchDraw(jpg->ClientRect,bmp);

    Wenn du jemandem helfen willst, Omega, dann schreib bitte lieber nichts anstatt so einen Blödsinn!!


Anmelden zum Antworten