web-dev-qa-db-fra.com

Ouvrir une image dans la visionneuse de photos Windows

Comment ouvrir une image .jpg dans la Visionneuse de photos Windows à partir de l'application C #? 

Pas dans l'application comme ce code, 

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

Démarrez-le dans un nouveau Processus

Process photoViewer = new Process();
photoViewer.StartInfo.FileName = @"The photo viewer file path";
photoViewer.StartInfo.Arguments = @"Your image file path";
photoViewer.Start();
16
Jalal Said

Je pense que vous pouvez simplement utiliser:

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

Et cela utilisera la visionneuse de fichiers standard associée aux fichiers .jpg - par défaut, la visionneuse d'images Windows.

78
iandotkelly

Le code récupère la photo de ftp et la montre dans la visionneuse de photos Windows. J'espère que cela vous sera utile. 

  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);
            };


        }

Meilleures salutations...

1
Mustafa Alp Çetin