C # динамический тип / Silverlight 4 AutomationFactory вопрос - PullRequest
0 голосов
/ 27 мая 2011

У меня есть небольшая функция в приложении Silverlight 4 OOB, которая получает изображение со сканера:

public static BitmapImage GetImageFromScanner()
        {
            try
            {
                using (dynamic CommonDialog = AutomationFactory.CreateObject("WIA.CommonDialog"))
                {
                    //Param meanings: (scanner, black and white, maximize quality)
                    dynamic imageFile = CommonDialog.ShowAcquireImage(1, 2, 131072);
                    if (imageFile != null)
                    {
                        return (BitmapImage)imageFile;
                    }
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {

                if (ex.ErrorCode == -2145320939)
                {
                    MessageBox.Show("Could not find an attached scanner.", "Scanner Error", MessageBoxButton.OK);
                }
                else if (ex.ErrorCode == -2145320957)
                {
                    MessageBox.Show("There is no paper in the scanner.", "Scanner Error", MessageBoxButton.OK);
                }


            }

            return null;
        }

Я бы хотел, чтобы функция возвращала BitmapImage, но я не уверен, как преобразовыватьдинамический тип.Я даже не уверен, какой тип imageFile был бы, если бы он не был динамическим.Приведенный выше метод возвращает следующее исключение:

Unable to cast object of type 'System.Runtime.InteropServices.Automation.AutomationMetaObjectProvider' to type 'System.Windows.Media.Imaging.BitmapImage'.

Может ли кто-нибудь дать руководство?Я не уверен, если это вопрос о динамическом ключевом слове или AutomationFactory, так как оба являются новыми для меня.: /

РЕДАКТИРОВАТЬ:

Я знаю, что это изображение, потому что если я сделаю это:JPG.Я попытался выяснить, какой объект в .NET Framework имеет метод SaveFile (), и, по-видимому, их много.

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Посмотрите, поможет ли это: Сканирование изображения из Silverlight 4 с помощью WIA Automation

Кажется, не просто получить изображение ...

0 голосов
/ 28 ноября 2011

ShowAcquireImage возвращает ImageFile, у него есть методы для сохранения контента на диск или поток

...