PictureBox drehen bzw. das Bild in der PictureBox drehen



  • Hallo,

    ich bin relativ neu beim C++ programieren und die Frage ist für euch bestimmt nicht
    so schwer 🙂 .

    Ich benutze als Entwicklungsumgebung Visuall C++2005 Express Edition.

    Könnt ihr mir vielleicht sagen oder einen Tip geben, wie ich das Bild in einer Picture Box drehen kann bzw. das Bild in der PictureBox drehen kann.

    Thobz



  • Hi,

    ich nehme mal an du befindest dich in der managed Welt, mit C++/CLI;

    myPictureBox->Image->RotateFlip(System::Drawing::RotateFlyType::Rotate180FlipX);
    

    Dieser Code z.b rotiert das Bild der PictureBox um 180° und Flipt es Horizontal.

    Einfach mal die MSDN wälzen.

    Mfg

    Reinhold Fischer



  • Hätte dazu eine ähnliche Frage und zwar wie man an das Bild ranzoomen kann. Also wie z.B. bei der Windows Bild Anzeige wenn man nach oben Scrollt kann man an das Bild ranzoomen.
    So oder so ähnlich würde ich das auch gerne machen. Oder was auch gut wäre wenn man vielleicht den Bereich an den man ranzoomen will mit der Maus auswählen kann.
    Ich wäre für Hilfe sehr dankbar :).



  • public Bitmap GetBitmapZoom(int percent)
            {
    
                 public Bitmap GetBitmapZoom(int percent)
            {
                int pSize = percent;
                /*Bitmap bild2 = (Bitmap)bild.GetThumbnailImage((bild.Width * 100) / percent, (bild.Height * 100) / percent, null, IntPtr.Zero);
                return bild2;
                  */
                Bitmap pImage = bild;
                int x, y;
    
                if (pImage.Width > pImage.Height)
                {
                    x = pSize;
                    y = Convert.ToInt32(((float)pImage.Height / (float)pImage.Width * pSize));
                }
                else
                {
                    y = pSize;
                    x = Convert.ToInt32(((float)pImage.Width / (float)pImage.Height * pSize));
                }
                Image ret = new Bitmap(x, y);
                Graphics g = Graphics.FromImage(ret);
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                g.DrawImage(pImage, 0, 0, x, y);
                g.Dispose();
    
                return ret as Bitmap;
            }
            }
    

    Ist C# aber ist ja nicht so schwer auf C++ zu ändern. Achtung die "percent" sind nicht zwingend wirklich Prozent (habe ich einfach mal so benannt), musst probieren mit dem TrackBar Max-Wert.
    Für ausschneiden: http://www.codeproject.com/KB/graphics/CroppingImages.aspx


Log in to reply