Открыть изображение в Windows Photo Viewer - PullRequest
21 голосов
/ 24 июля 2011

Как открыть .jpg изображение в Windows Photo Viewer из приложения C #?

Не внутри приложения, как этот код,

FileStream stream = new FileStream("test.png", FileMode.Open, FileAccess.Read);
pictureBox1.Image = Image.FromStream(stream);
stream.Close();

Ответы [ 3 ]

81 голосов
/ 24 июля 2011

Я думаю, вы можете просто использовать:

Process.Start(@"C:\MyPicture.jpg");

И это будет использовать стандартный просмотрщик файлов, связанный с файлами .jpg - по умолчанию просмотрщик изображений Windows.

16 голосов
/ 24 июля 2011

Запустите его в новом процессе

Process photoViewer = new Process();
photoViewer.StartInfo.FileName = @"The photo viewer file path";
photoViewer.StartInfo.Arguments = @"Your image file path";
photoViewer.Start();
1 голос
/ 15 февраля 2019

Код извлекает фотографию из ftp и показывает фотографию в Windows Photo Viewer.Я надеюсь, что это будет полезно для вас.

  public void ShowPhoto(String uri, String username, String password)
        {
            WebClient ftpClient = new WebClient();
            ftpClient.Credentials = new NetworkCredential(username,password);
            byte[] imageByte = ftpClient.DownloadData(uri);


            var tempFileName = Path.GetTempFileName();
            System.IO.File.WriteAllBytes(tempFileName, imageByte);

            string path = Environment.GetFolderPath(
                Environment.SpecialFolder.ProgramFiles);

            // create our startup process and argument
            var psi = new ProcessStartInfo(
                "rundll32.exe",
                String.Format(
                    "\"{0}{1}\", ImageView_Fullscreen {2}",
                    Environment.Is64BitOperatingSystem ?
                        path.Replace(" (x86)", "") :
                        path
                        ,
                    @"\Windows Photo Viewer\PhotoViewer.dll",
                    tempFileName)
                );

            psi.UseShellExecute = false;

            var viewer = Process.Start(psi);
            // cleanup when done...
            viewer.EnableRaisingEvents = true;
            viewer.Exited += (o, args) =>
            {
                File.Delete(tempFileName);
            };


        }

С наилучшими пожеланиями ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...