Не удалось получить полное изображение в сканере WIA в приложении C# WindowsC#

Место общения программистов C#
Anonymous
Не удалось получить полное изображение в сканере WIA в приложении C# Windows

Сообщение Anonymous »

Я использую код для сканера WIA. Но после 75DPI сканер не дает мне полного изображения. Я получаю только половину изображения от сканера. Пожалуйста, проверьте это. < /P>

private static void SaveImageToPNGFile(ImageFile image, string fileName)
{
ImageProcess imgProcess = new ImageProcess();
object convertFilter = "Convert";
string convertFilterID = imgProcess.FilterInfos.get_Item(ref convertFilter).FilterID;
imgProcess.Filters.Add(convertFilterID, 0);
SetWIAProperty(imgProcess.Filters[imgProcess.Filters.Count].Properties, "FormatID", WIA.FormatID.wiaFormatPNG);
image = imgProcess.Apply(image);
image.SaveFile(fileName);
}
private static void AdjustScannerSettings(IItem scannnerItem, int scanColor,
int scanWidthPixels, int scanHeightPixels, int brightnessPercents, int contrastPercents)
{

SetWIAProperty(scannnerItem.Properties, "4104", 24);
SetWIAProperty(scannnerItem.Properties, "6146", scanColor);
SetWIAProperty(scannnerItem.Properties, "6147", 75);//Horizontal resolution
SetWIAProperty(scannnerItem.Properties, "6148", 75);//vertical resolution

SetWIAProperty(scannnerItem.Properties, "6151", scanHeightPixels);
SetWIAProperty(scannnerItem.Properties, "6152", scanWidthPixels);
SetWIAProperty(scannnerItem.Properties, "6154", brightnessPercents);//range from -100 to 100. 0 refer for the normal brightnes
SetWIAProperty(scannnerItem.Properties, "6155", contrastPercents);//range from -100 to 100. 0 refer for the normal brightnes
}
private static void SetWIAProperty(IProperties properties, object propName, object propValue)
{
Property prop = properties.get_Item(ref propName);
prop.set_Value(ref propValue);
}
private void button1_Click(object sender, EventArgs e)
{
int height = int.Parse(textBoxheight.Text.Trim());
int width = int.Parse(textBoxwidth.Text.Trim());

CommonDialogClass commonDialogClass = new CommonDialogClass();
Device scannerDevice;
try
{

scannerDevice = commonDialogClass.ShowSelectDevice(WiaDeviceType.ScannerDeviceType, false , false);
if (scannerDevice != null)
{

Item scannnerItem = scannerDevice.Items[1];
AdjustScannerSettings(scannnerItem, 4, height, width, 20, 20);//dpi valid only for 150,200,300,400
object scanResult = commonDialogClass.ShowTransfer(scannnerItem, WIA.FormatID.wiaFormatPNG, false);
if (scanResult != null)
{
ImageFile image = (ImageFile)scanResult;
// Image objimg = (Image)image;
string fileName = Path.GetTempPath() + DateTime.Now.ToString("dd-MM-yyyy-hh-mm-ss-fffffff") + ".png";
SaveImageToPNGFile(image, fileName);
pictureBox1.ImageLocation = fileName;
//pictureBox1.Height = height;
//pictureBox1.Width = width;
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
Bitmap obj = new Bitmap(fileName);
panel1.BackgroundImage = obj;
panel1.AutoSize = true;
panel1.AutoScroll = true;

}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private void button3_Click(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}

private void button2_Click(object sender, EventArgs e)
{
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.Hide();
wiascan obj = new wiascan();
obj.Show();
}
}
< /code>

Я попробовал как в блоке изображения, так и на панели, чтобы показать мое изображение, но оба элемента управления не могли дать мне полное изображение. < /p>

Подробнее здесь: https://stackoverflow.com/questions/103 ... pplication

Вернуться в «C#»