JPGs anzeigen mit Zoom etc

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    JPGs anzeigen mit Zoom etc

    Hallo,

    ich begebe mich mal in dieses Unterforum, denke da bin ich richtig aufgehoben.

    Meine Anwendung soll JPGs anzeigen. Die Anzeige sollte das Bild skalieren können, also rein und rauszoomen, Bildausschnitte verschieben etc.

    Sowas sieht man ständig anderswo, also sollte das kein Problem sein.

    Gibt es was fertiges oder bedarf es da der ausgewachsenen Multimedia-Skills?

    Grüßle

    MQ
    @MasterQ Sieh Dir mal die Überladungen von Graphics.DrawImage() an.
    docs.microsoft.com/de-de/dotne…age?view=netframework-4.8
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für diesen Tipp. Im Prinzip klappt das auch.

    Ich habe das Zeichnen in die Paint-Eventmethode gelegt. Das hat das Problem, dass wenn das Fenster seine Größe ändert nur die Bereiche neu gezeichnet werden, die hinzugekommen sind. Der Bereich, der nicht betroffen ist, wird nicht neu gezeichnet.

    C#-Quellcode

    1. private void panel_Paint(object sender , PaintEventArgs e) {
    2. //Rectangle destrec = e.ClipRectangle;
    3. Rectangle destrec = panel.ClientRectangle;
    4. e.Graphics.DrawImage(Image, destrec, 0 , 0 , Image.Width , Image.Height , GraphicsUnit.Pixel);
    5. }


    In meinem Fall müsste das Bild aber immer vollständig gezeichnet werden. Die Frage ist, wie das geht.

    1) Nicht Paint sondern onPaint ändern. Dazu müsste ich ein neues Formular kreieren, z.B. auf Basis des Panel oder PictureBox.
    2) den kompletten Clientbereich als ungültig erklären.
    3) ... ?


    Ich habe in dem Bereich nur rudimentäre Kenntnisse, habe nie wirklich was mit Paint und onPaint gewerkelt.

    Gibt es da Beispielcode, den ich mir mal ansehen könnte?


    Gruß

    MQ

    MasterQ schrieb:

    Die Frage ist, wie das geht.
    Invalidisiere die ganze PictureBox wannimmer es erforderlich ist, insbesondere bei einem Resize der Form.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!