簡體   English   中英

C#在PictureBox上繪制

[英]C# Draw on a PictureBox

假設我有一個分配了圖像的PictureBox,而我只想在其上方繪制一個較小的位圖。

這是我的代碼:

 Bitmap a = Getimage();//just a small function generates a new image.
 Bitmap f = (Bitmap) pictureBox1.Image;//getting the picturebox image.
 Graphics g = Graphics.FromImage(f);
 g.DrawImage(a,150,200);//draws a on f at (150,200).
 PictureBox1.Image=f;

但是,在我的程序中,它在單獨的線程中循環運行,因此出現錯誤:

對象在其他地方使用

有沒有辦法直接繪制到Picturebox本身? 而不是獲取位圖並繪制,然后重新分配? 或者至少我該如何解決以上例外情況?

謝謝。

這會幫助你

    public Form1()
    {
        InitializeComponent();
        new Thread(MyDraw).Start();
    }

    private void MyDraw()
    {
        while(true)
        {
            Invoke(new Action(DrawItem));
            Thread.Sleep(1000);
        }
    }

    private void DrawItem()
    {
        using (var graphics = Graphics.FromImage(pictureBox1.Image))
        {
            graphics.DrawString("Hello", new Font("Arial", 20), Brushes.Yellow, PointF.Empty);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM