Создание превью миниатюр в VB.NET - PullRequest
0 голосов
/ 27 июня 2011

Я пытаюсь создать миниатюры в моей программе. Они будут работать для любого типа файла, а не только для изображений. Так что видео тоже. Прямо сейчас я использую IExtractImage, чтобы сделать это. Он отлично работает, но, кажется, случайно вылетает из моей программы, когда я вызываю .Extract (). Там нет сообщения об ошибке, моя программа просто вылетает. Когда я запускаю его в отладчике, он не ломается при сбое. У меня есть это в блоке try / catch, и это, похоже, не помогает. Он не воспроизводится и не падает каждый раз на одном и том же файле. Как я могу заставить его работать или просто предотвратить сбой всей моей программы?

Я использую код из этого проекта:

http://www.vbaccelerator.com/home/net/code/libraries/shell_projects/Thumbnail_Extraction/article.asp

1 Ответ

0 голосов
/ 27 июня 2011

Итак, если вы запустите приложение в режиме отладки, вытащите его из блока try / catch, и у вас вообще не будет ошибок? Что происходит при сбое приложения, появляется ли сообщение об исключении? Если вы все еще не получаете исключения, я не уверен, что с этим делать. Я предполагаю, что это как-то связано с исключением из-за того, что неуправляемый код Windows некорректно генерируется или копируется.

Вместо использования кода оболочки из публикации, на которую вы ссылались, вы можете использовать Image.GetThumbnail из .NET Framework для изображений (очень просто) и вызов прямого показа для получения миниатюр для любых поддерживаемых типов видео.

Изображение:

// create an image object, using the filename of the file
   System.Drawing.Image image = System.Drawing.Image.FromFile(filename);

// create the actual thumbnail image
   System.Drawing.Image thumbnailImage = image.GetThumbnailImage(64, 64, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);

   public bool ThumbnailCallback()
     {
       return true;
     }

Видео:

Проверьте сообщение по адресу: Создатель миниатюр видео

...