画面の一部をキャプチャしてズームする画面のズームを作成します。以下のコードは、画面をキャプチャしてPictureBoxで再生できるようになりました。しかし、私はプログラムを開いている間、私の記憶が成長し続けるというこの問題を抱えています。私は解放されないいくつかのリソースがなければならないと思うし、それを解放する方法を知らない。PictureBoxリソースのリリース
私はメディアプレーヤーのようにしていますが、ビデオを再生するのではなく、現在の画面の一部を再生します。
public partial class Form1 : Form
{
PictureBox picBox;
Bitmap bit;
Graphics g;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
picBox = pictureBox;
}
private void CopyScreen()
{
bit = new Bitmap(this.Width, this.Height);
g = Graphics.FromImage(bit as Image);
Point upperLeftSource = new Point(
Screen.PrimaryScreen.Bounds.Width/2 - this.Width/2,
Screen.PrimaryScreen.Bounds.Height/2 - this.Height/2);
g.CopyFromScreen(upperLeftSource, new Point(0, 0), bit.Size);
picBox.Image = Image.FromHbitmap(bit.GetHbitmap());
bit.Dispose();
g.Dispose();
}
private void timer_Tick(object sender, EventArgs e)
{
CopyScreen();
}
https://stackoverflow.com/questions/1831732/c-sharp-picturebox-memory-releasing-problemを見てください –
@mjwills動作しています...メモリはまだ成長し続けています –
@mjwills私はタイマーの間隔を設定しました〜20になるので、メモリは非常に高速になります。たとえば、毎秒10MBのように。 –