код здесь:Где я должен писать в методе обработки изображений?
public Bitmap ScreenCaptureBitmap(int DesktopX, int DesktopY, int CaptureWidth, int CaptureHeight)
{
Bitmap ScreenCaptureBmp = new Bitmap(CaptureWidth, CaptureHeight);
Graphics graphics = Graphics.FromImage(ScreenCaptureBmp as Image);
graphics.CopyFromScreen(DesktopX, DesktopY, 0, 0, ScreenCaptureBmp.Size);
graphics.Dispose();
return ScreenCaptureBmp;
}
public Bitmap ResizeBitmap(Bitmap ResizeBmp, int RBmpWidth, int RBmpHeight)
{
Bitmap RBmp = new Bitmap(RBmpWidth, RBmpHeight);
using (Graphics RBmpG = Graphics.FromImage((Image)RBmp))
RBmpG.DrawImage(ResizeBmp, 0, 0, RBmpWidth, RBmpHeight);
return RBmp;
}
private void timer1_Tick(object sender, EventArgs e)
{
Bitmap Pic = ScreenCaptureBitmap(50, 50, 640, 320);
Bitmap Pic1 = ResizeBitmap(Pic, 128, 64);
pictureBox1.Image = Pic1;
}
Какой Bitmap я должен распоряжаться? (Я не знаю, должен ли я использовать все эти «ScreenCaptureBmp», «ResizeBmp», «RBmp», «Pic», «Pic1» или некоторые из них).
Должен ли я использовать обратный растровый метод? (Пример: «ScreenCaptureBmp», «RBmp»).
Я правильно выбрал графику («графика», «RBmpG») в этом коде?
ГДЕ Я НАПИСАЛ УТИЛИЗИРОВАТЬ УТИЛИЗАЦИЮ В ПРАВИЛЬНОМ ПУТЕМ?
Если я пишу этот код:
public Bitmap ScreenCaptureBitmap(int DesktopX, int DesktopY, int CaptureWidth, int CaptureHeight)
{
Bitmap ScreenCaptureBmp = new Bitmap(CaptureWidth, CaptureHeight);
using (Graphics graphics = Graphics.FromImage(ScreenCaptureBmp as Image))
graphics.CopyFromScreen(DesktopX, DesktopY, 0, 0, ScreenCaptureBmp.Size);
return ScreenCaptureBmp;
}
public Bitmap ResizeBitmap(Bitmap ResizeBmp, int RBmpWidth, int RBmpHeight)
{
Bitmap RBmp = new Bitmap(RBmpWidth, RBmpHeight);
using (Graphics RBmpG = Graphics.FromImage((Image)RBmp))
RBmpG.DrawImage(ResizeBmp, 0, 0, RBmpWidth, RBmpHeight);
return RBmp;
}
private void timer1_Tick(object sender, EventArgs e)
{
Bitmap Pic = ScreenCaptureBitmap(50, 50, 640, 320);
Bitmap Pic1 = ResizeBitmap(Pic, 128, 64);
Pic.Dispose();
using (Image PreviewImage = pictureBox1.Image)
{
pictureBox1.Image = Pic1;
}
}
ли все отчуждать в правильном пути в этом (2) код?
Устраняет метод «timer1_Tick» в этом (втором) коде?
Используйте блок 'using', и все будет хорошо. Ни один из методов не может избавиться от растрового изображения, которое они создали, если потребительский код будет использовать их. Этот код должен, если создаются/используются новые изображения – Plutonix
Можете ли вы написать пример метода? Я попытался написать «using», но я не могу писать успешно, поэтому мое приложение вылетает после начала отладки (когда я использую свой метод). Я новичок. –
Для изображений, используемых в пользовательском интерфейсе, это всегда немного беспокоит ... вам нужно следить за тем, используются ли они где-либо еще. – Nyerguds