Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Grafikgröße festlegen und automatisch anpassen
RonnyW
myCSharp.de - Member



Dabei seit:
Beiträge: 154
Herkunft: LE

Themenstarter:

Grafikgröße festlegen und automatisch anpassen

beantworten | zitieren | melden

hi @ all,

folgendes Problem...
Ich hab die Aufgabe ein Bild in mein Programm einzubauen, was ja auch kein Problem ist, nur das Bild muss IMMER in der Größe 320*240 haben, da es für Videozwecke verwendet werden soll.

Gibt es eine Möglichkeit, der PictureBox irgendwie zu sagen, dass das eingebunde Bild immer in der Größe anzuzeigen oder dies dementsprechend zu konvertieren... schließlich gibt es ja jede Menge unterschiedlich großer Bildformate...

Mein Problem ist, ich kann ja dem Kunden nicht zwangsweise sagen, gib mir dein Bild nur in dieser Größe.

Danke
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von RonnyW am .
RonnyW :evil:
private Nachricht | Beiträge des Benutzers
VuuRWerK
myCSharp.de - Member

Avatar #avatar-2424.gif


Dabei seit:
Beiträge: 183
Herkunft: Dresden

beantworten | zitieren | melden

Klingt nach einer typischen "Thumbnail"-Methode.

http://www.c-sharpcorner.com/UploadFile/mahesh/thumbnail08072007131100PM/thumbnail.aspx

Die Größe kann ja frei festgelegt werden.

Gut Schuß
VuuRWerK
private Nachricht | Beiträge des Benutzers
RonnyW
myCSharp.de - Member



Dabei seit:
Beiträge: 154
Herkunft: LE

Themenstarter:

beantworten | zitieren | melden

ok danke, werds ma probieren
RonnyW :evil:
private Nachricht | Beiträge des Benutzers
RonnyW
myCSharp.de - Member



Dabei seit:
Beiträge: 154
Herkunft: LE

Themenstarter:

beantworten | zitieren | melden

ehm... sag mal gibt es auch ne methode, wie man die momentanen abmaße eines bildes heruasbekommen kann?

Danke
RonnyW :evil:
private Nachricht | Beiträge des Benutzers
WSX
myCSharp.de - Member



Dabei seit:
Beiträge: 32

beantworten | zitieren | melden

wenn du willst, dass das bild immer die gewünschte größe der picturebox haben soll such mal nach der Eigenschaft pictureBox.Sizemode,
das sollte der einfachste Lösungsansatz sein.
"Arbeit ist die altmodische Form der Vermögensbildung in Arbeitnehmerhand."

Wolfram Weidner (*1925), dt. Journalist
private Nachricht | Beiträge des Benutzers
RonnyW
myCSharp.de - Member



Dabei seit:
Beiträge: 154
Herkunft: LE

Themenstarter:

beantworten | zitieren | melden

ok danke
RonnyW :evil:
private Nachricht | Beiträge des Benutzers
VuuRWerK
myCSharp.de - Member

Avatar #avatar-2424.gif


Dabei seit:
Beiträge: 183
Herkunft: Dresden

beantworten | zitieren | melden

Das SizeMode "quetscht" dann aber das Bild in den vorgegebenen Rahmen, das sieht erstens blöd aus und ist zweitens nicht wirklich effektiv wenn Du später mit dem Bild weiterarbeiten willst und es aber die Maße brauch wie es angezeigt wird.

Die Größe des Bildes welches Du im Moment geladen hast bekommst Du über das Image-Objekt heraus.

Gut Schuß
VuuRWerK
private Nachricht | Beiträge des Benutzers
RonnyW
myCSharp.de - Member



Dabei seit:
Beiträge: 154
Herkunft: LE

Themenstarter:

beantworten | zitieren | melden

ich habs jetzt so gelöst, das bild wird jetzt im richtigen verhältnis dargestellt, was durch die if-bedingungen kontrolliert und richtig konvertiert wird


                decimal neue_breite = 0; decimal neue_hoehe = 0; decimal orig_breite = 0; decimal orig_hoehe = 0; decimal max_breite = 320; decimal max_hoehe = 240;

                orig_breite = img.Width;
                orig_hoehe = img.Height;
                if (max_breite / max_hoehe < orig_breite / orig_hoehe)
                {
                    neue_breite = max_breite;
                    neue_hoehe = orig_hoehe * (max_breite / orig_breite);
                    Image newImg = new Bitmap(img, Convert.ToInt32(neue_breite), Convert.ToInt32(neue_hoehe));
                    newImg.Save(newImgPfad, System.Drawing.Imaging.ImageFormat.Jpeg);
                    this.pictureBoxBild.Image = newImg;
                }
                if (max_breite / max_hoehe > orig_breite / orig_hoehe)
                {
                    neue_breite = orig_breite * (max_hoehe / orig_hoehe);
                    neue_hoehe = max_hoehe;
                    Image newImg = new Bitmap(img, Convert.ToInt32(neue_breite), Convert.ToInt32(neue_hoehe));
                    newImg.Save(newImgPfad, System.Drawing.Imaging.ImageFormat.Jpeg);
                    this.pictureBoxBild.Image = newImg;
                }
                if (max_breite / max_hoehe == orig_breite / orig_hoehe)
                {
                    neue_breite = max_breite;
                    neue_hoehe = max_hoehe;
                    Image newImg = new Bitmap(img, Convert.ToInt32(neue_breite), Convert.ToInt32(neue_hoehe));
                    newImg.Save(newImgPfad, System.Drawing.Imaging.ImageFormat.Jpeg);
                    this.pictureBoxBild.Image = newImg;

RonnyW :evil:
private Nachricht | Beiträge des Benutzers