我遇到了轉換錯誤我想要克服一些幫助。將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);
我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語句是罪魁禍首:
if (saveToClipboard)
{
Image img = (Image)bitmap;
if (OnUpdateStatus == null) return;
ProgressEventArgs args = new ProgressEventArgs(img);
OnUpdateStatus(this, args);
}
我已經跑出來的關於如何擊敗這些錯誤的想法。任何人都可以擺脫一些輕/新的見解,以便我可以擺脫它們?
爲了將來的參考,儘管通常很好地展示你嘗試過的東西。在這個例子中,通過顯示代碼的每個變化,使問題變得有點混亂。最好是隻顯示你當前的代碼,錯誤信息和錯誤信息......然後,Google錯誤消息應該已經解決了你的問題 – musefan
只是想給我一個詳細的概述嘗試並避免投票。沒有工作:( – N0xus
這不是我的失望,我知道你只是儘量提供儘可能多的信息。只是在這種情況下,你可能已經有太多的代碼變化讓一些東西感到困惑 – musefan