[英]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.