Как я могу нарисовать небольшое изображение поверх изображения с помощью графической библиотеки C #? - PullRequest
2 голосов
/ 29 декабря 2010

Когда я пытаюсь нарисовать изображение поверх другого с помощью графической библиотеки C #, оно масштабирует маленькое и закрывает первое:

  public Form1()
    {   
        //InitializeComponent();
        read_file();
        InitializeComponent1();
        SetStyle(ControlStyles.Opaque, true);
        // theImage = new Bitmap("F:/4th year/1st Term/sensor network/proj/reconstructscene/reconstructscene/images/tryImage.jpg");
        theImage2 = new Bitmap("F:/4th year/1st Term/sensor network/proj/reconstructscene/reconstructscene/images/1.jpg");
        // theImage = new Bitmap(newImage);
        theImage = new Bitmap("F:/4th year/1st Term/sensor network/proj/reconstructscene/reconstructscene/images/tryImage.jpg");
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        //e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
        //e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
        //e.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; 
          g.DrawImage(theImage, ClientRectangle);
        // Create pen.
        g.FillRectangle(new SolidBrush(Color.Red), 50, 50, 50, 50);
        RectangleF recto = new System.Drawing.RectangleF(50, 50, 50, 50);
        Pen blackPen = new Pen(Color.Black,1);

        g.DrawRectangle(blackPen, 50, 50, 50, 50);
        g.DrawImage(theImage2, ClientRectangle); //this will cover the 1st one
    }

Ответы [ 2 ]

5 голосов
/ 29 декабря 2010

Вместо этого:

g.DrawImage(theImage2, 0, 0, theImage2.Width, theImage2.Height);

Это должно нарисовать изображение в «правильном» месте, не растягивая его.

0 голосов
/ 29 декабря 2010

посмотрите на нарисовать на изображении

гарантировано DrawString, вы должны использовать DrawImage

...