1
我試圖製作一個可以使用C#和WIA掃描文檔的應用程序。但是在設置頁面大小屬性時遇到了問題。當我運行掃描過程中我的應用程序拋出一個錯誤:WIA設置頁面大小不起作用
「System.Runtime.InteropServices.COMException」類型的未處理的異常出現在DigiKnjiga.exe
其他信息:從HRESULT異常:0x80210067
我已經嘗試過使用這些屬性:PageSize(3097),PageWidth(3098)& PageHeight(3099),HorizontalExtent(6151)& VerticalExtent(6152)。但是設置任何這些值都會引發前面提到的異常。
這裏是啓動掃描過程中的事件:我不知道是否有人知道解決這個問題
private void scanNew_Click(object sender, EventArgs e)
{
if (Scanner.ChosenDevice > 0)
{
Device = deviceManager.DeviceInfos[Scanner.ChosenDevice].Connect();
switch (Scanner.ColorCode)
{
case 0://color
Device.Items[1].Properties["6146"].set_Value(1);
break;
case 1://grayscale
Device.Items[1].Properties["6146"].set_Value(2);
break;
case 2://black and white
Device.Items[1].Properties["6146"].set_Value(4);
break;
}
//(DPI)
Device.Items[1].Properties["6147"].set_Value(Scanner.DPI);
Device.Items[1].Properties["6148"].set_Value(Scanner.DPI);
//brightness
Device.Items[1].Properties["Brightness"].set_Value(Scanner.Brightness);
//contrast
Device.Items[1].Properties["Contrast"].set_Value(Scanner.Contrast);
switch (Scanner.Format)
{
case 0://A3
Device.Items[1].Properties["3097"].set_Value(10);
//Device.Items[1].Properties["6151"].set_Value(11692);
//Device.Items[1].Properties["6152"].set_Value(16535);
break;
case 1://A4
Device.Items[1].Properties["3097"].set_Value(0);
//Device.Items[1].Properties["6156"].set_Value(1);
//Device.Items[1].Properties["3098"].set_Value(8267);
//Device.Items[1].Properties["3099"].set_Value(11692);
////Device.Items[1].Properties["6151"].set_Value(1165 * 2);
////Device.Items[1].Properties["6152"].set_Value(1653 * 2);
////Device.Items[1].Properties["3097"].set_Value("0");
break;
case 2://A5
Device.Items[1].Properties["3097"].set_Value(11);
//Device.Items[1].Properties["6151"].set_Value(1165);
//Device.Items[1].Properties["6152"].set_Value(1653);
break;
}
switch (Scanner.FileType)
{
case 0://JPEG
image = (WIA.ImageFile)Device.Items[1].Transfer(WIA.FormatID.wiaFormatJPEG);
break;
case 1://PNG
image = (WIA.ImageFile)Device.Items[1].Transfer(WIA.FormatID.wiaFormatPNG);
break;
case 2://BMP
image = (WIA.ImageFile)Device.Items[1].Transfer(WIA.FormatID.wiaFormatBMP);
break;
case 3://TIFF
image = (WIA.ImageFile)Device.Items[1].Transfer(WIA.FormatID.wiaFormatTIFF);
break;
}
byte[] imageBytes = (byte[])image.FileData.get_BinaryData();
MemoryStream ms = new MemoryStream(imageBytes);
Image image2 = Image.FromStream(ms);
Bitmap smaller= new Bitmap(image2 , new Size(prikazZbirke.Width, prikazZbirke.Height));
prikazStrani.Size = new System.Drawing.Size(image2 .Width, image2 .Height);
prikazStrani.Location = new Point(0, 0);
prikazStrani.Image = image2 ;
image2 .Save("test.jpg");
}
}
,我感謝你在爲你的答案。同時爲任何拼寫錯誤道歉,因爲我不是英文的。
您是否嘗試過谷歌搜索「0x80210067」?這可能會提供一些見解。以下是熱門影片: http://social.msdn.microsoft.com/Forums/vstudio/en-US/5c67c6a5-728f-41f9-a586-2d139394fac7/windows-image-acquisition-error-hresult-0x80210067?forum= vbgeneral – RenniePet
謝謝你的回覆@RenniePet。我以前曾訪問過該網站,並且我可以從中收集該例外是「YOURERROR」錯誤或類似情況。不知道這到底意味着什麼。 – MrSnoopy