У меня ошибка преобразования. Мне нужна помощь в преодолении.Преобразование типа void в System.Drawing.Image
На данный момент я пытаюсь снять захват экрана на своем рабочем столе и сохранить его в переменной, которую я могу передать. Сейчас этот код выглядит следующим образом:
ScreenCapture capture = new ScreenCapture();
Image capturedImageObj= capture.CaptureImage(showCursor, curSize, curPosition, startPoint, Point.Empty, bounds, _screenPath, fi);
Однако, делая это, я получаю следующее сообщение об ошибке:
Cannot implicitly convert type 'void' to 'System.Drawing.Image'
Итак, я попытался типовому кастовал capture.CaptureImage и он произвел то же самое ошибка. Линия я написал, было так:
Image capturedImageObj= (Image)capture.CaptureImage(showCursor, curSize, curPosition, startPoint, Point.Empty, bounds, _screenPath, fi);
метод My CaptureImage заключается в следующем:
public void CaptureImage(bool showCursor, Size curSize, Point curPos, Point SourcePoint, Point DestinationPoint, Rectangle SelectionRectangle, string FilePath, string extension)
{
Bitmap bitmap = new Bitmap(SelectionRectangle.Width, SelectionRectangle.Height);
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(SourcePoint, DestinationPoint, SelectionRectangle.Size);
if (showCursor)
{
Rectangle cursorBounds = new Rectangle(curPos, curSize);
Cursors.Default.Draw(g, cursorBounds);
}
}
if (saveToClipboard)
{
Image img = (Image)bitmap;
if (OnUpdateStatus == null) return;
ProgressEventArgs args = new ProgressEventArgs(img);
OnUpdateStatus(this, args);
}
Таким образом, видя, что я поставил метод ничтожным, я изменил его так, что он потребует изображение так:
public Image CaptureImage(bool showCursor, Size curSize, Point curPos, Point SourcePoint, Point DestinationPoint, Rectangle SelectionRectangle, string FilePath, string extension)
Но тогда он генерировал следующее сообщение об ошибке:
An object of a type convertible to 'System.Drawing.Image' is required.
точки этой ошибки следующего фрагмента кода со вторым, если заявление является виновником:
if (saveToClipboard)
{
Image img = (Image)bitmap;
if (OnUpdateStatus == null) return;
ProgressEventArgs args = new ProgressEventArgs(img);
OnUpdateStatus(this, args);
}
Я выбежал из идеи о том, как разбить эти ошибки. Может ли кто-нибудь пролить некоторый свет/новое понимание, чтобы я мог избавиться от них?
Для справок в будущем, все, хотя в целом хорошо показывать вещи, которые вы пробовали. В этом примере вы ставите вопрос немного запутанным, показывая каждое изменение вашего кода.Было бы лучше просто показать ваш текущий код, строку с ошибками и сообщение об ошибке ... опять же, Googling сообщение об ошибке должно было решить вашу проблему в любом случае – musefan
Просто хотел дать подробный обзор того, что у меня есть пробовал и избегал голосования. Не работает :( – N0xus
Это был не мой нисходящий сигнал, и я понимаю, что вы просто пытались предоставить как можно больше информации. Именно в этом случае вы, возможно, немного сбивали с толку, слишком много изменений кода – musefan