Bild aus Picturebox skalieren und speichern



  • Na du übergibst dem Konstruktor von Bitmap das Image aus der picturebox1 und die Size die du haben willst. Size ist wiederum eine Klasse(oder struct, ist jetzt ja nich so wichtig) von welcher du ein Objekt erzeugst mit den Größenangaben die du brauchst. Ich bin mir sicher du wirst für diese eine Zeile Code keinen Hilfscode von uns gebrauchen 😉


  • Administrator

    Sonnenlichtfee schrieb:

    Mit dem Link komme ich leider nicht recht weiter, ...

    Was ist denn daran unklar? Du weisst doch, wie man einen Konstruktor einsetzt? Wenn nicht, dann solltest du dringend die Grundlagen durcharbeiten. Ansonsten erklär genauer was unklar ist. Du musst eine Zeile schreiben, wenn wir sie dir einfach hinschreiben, dann habe ich meine Zweifel, dass du viel daraus lernst.

    Oder hast du Mühe mit dem Englisch? Einfach das en-us im Link durch de-de ersetzen:
    http://msdn.microsoft.com/de-de/library/0wh0045z.aspx

    Aber Englisch lesen sollte man in der Programmierung mindestens können 🙂

    Grüssli



  • Kannst knicken, piller ich nicht! ! !



  • Hallo,

    der letzte Eintrag stammt leider nicht von mir!!

    02:13:17 13.02.2011 Titel: Zitieren
    Kannst knicken, piller ich nicht! ! !

    Hier mal mein Code, das Bild wird auch verkleinert, aber leider nicht sakliert, sondern nur ein Ausschnitt auf die von mir angegebene Größe geschnitten:

    Bitmap orgImage = new Bitmap(pictureBox1.Image);
                            Bitmap newImage = new Bitmap(250, 200);
                            Graphics gimage = Graphics.FromImage(newImage);
                            Rectangle compressionRectangle = new Rectangle(0, 0, orgImage.Width / 2, orgImage.Height / 2);
                            gimage.DrawImage(orgImage, compressionRectangle);
    
                            newImage.Save("D:\test.jpg");
    

    Bin ich zuminest auf dem richtigen Weg?
    Danke!


  • Administrator

    Sonnenlichtfee schrieb:

    Bin ich zuminest auf dem richtigen Weg?

    Nein. Und ich stelle nochmals die Frage: Was ist denn bitte an der Dokumentation zu diesem Konstruktor von Bitmap unklar? 😕

    Grüssli



  • Problem:

    Du weisst doch, wie man einen Konstruktor einsetzt?

    Sollte wohl wirklich an den Grundlagen arbeiten, denn genau das ist mein Problem. 😕


  • Administrator

    Dann arbeite dringend die Grundlagen durch! Kannst ja den C# Programming Guide lesen, ist ein guter Einstieg:
    http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx

    Wie man einen Konstruktor nutzt, ist in diesem Guide auch beschrieben:
    http://msdn.microsoft.com/en-us/library/ms173115.aspx

    Wie willst du eine Sprache verwenden, wenn du sie gar nicht lernst? Mit ein wenig rumpröbeln wirst du nirgendwo hinkommen.

    Grüssli



  • So, hier mal meine Lösung.
    Ich weiß zwar nicht, ob es nun wirklich so gemacht ist, wie Ihr vorgeschlagen habt, aber zumindest erreicht ich damit, was ich mir vorgestellt habe:

    public Image skalieren(Image img, int groesse)
            {
                int originalB = img.Width;
                int originalH = img.Height;
                int skaliertB = (int)(originalB * groesse);
                int skaliertH = (int)(originalH * groesse);
    
                Bitmap bmp = new Bitmap(skaliertB, skaliertH);
    
                Graphics graphic = Graphics.FromImage((Image)bmp);
                graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
    
                graphic.DrawImage(img, 0, 0, skaliertB, skaliertH);
                graphic.Dispose();
    
                bmp.Save("C:\\test.jpg");
                return (Image)bmp;
    

    Aufruf:

    skalieren(pictureBox1.Image, 5);
    

    Welche Bücher wären sonst lohnenswert, um richtig in die C# Programmierung rein zu kommen?
    Ich weiß, im Internet gibt es viele Seiten, aber mir ist eben etwas "handfestes" lieber ...

    Danke!


  • Administrator

    Sag mal, wie bist du auf diese Lösung gekommen? Wohl kaum mit rumpröbeln, sondern indem du gewisse Dokumentationen und Seiten gelesen hast. Wenn du dich auf die Sprache konzentriert hättest und auf die Links, welche ich dir gegeben hätte, dann wäre aus der Lösung folgendes geworden:

    var scaledImg = new Bitmap(pictureBox1.Image, new Size(100, 100)); // 100x100 oder halt eine andere Grösse
    scaledImg.Save("C:/test.jpg");
    

    Bücher wurden hier schon viele vorgeschlagen, einfach mal durchsuchen:
    http://www.c-plusplus.net/forum/173222
    http://www.c-plusplus.net/forum/39583
    http://www.c-plusplus.net/forum/272550

    Der C# Programming Guide ist aber wirklich gut. Den sollte man nicht mit einem Tutorial verwechseln. Er stammt ja auch direkt von Microsoft. Auch wenn du dich für ein Buch entscheidest, ich würde dir empfehlen, ihn irgendwo im Hinterkopf zubehalten. Über die MSDN Suche kommt man so auch schnell an zusätzliche Informationen oder kann kurz spicken gehen.
    http://social.msdn.microsoft.com/search/en-us

    Grüssli



  • Weißt Du wie man das als Softwareentwickler macht?

    www.google.de

    Suchbegriffe: Was möchte ich machen!

    c# image skalieren

    dann schaut man was man da braucht.

    Geht auch mit anderen suchbegriffen

    c# bild skalieren
    c# image verkleinern
    c# .. ..... ...
    etc
    etc

    Solche Sachen müsste man nie hier fragen da es tausende Seiten mit Code gibt,.


Anmelden zum Antworten