我使用此代码但它不起作用。默认照片查看器无法打开图片
public static void OpenPicture(object source,EventArgs e)
{
Bitmap bitmap1 = AD.Properties.Resources.dust2;
File.Open(bitmap1, FileMode.Open);
}
答案 0 :(得分:1)
我认为你有一些误解。
首先,Bitmap
是一个封装图像信息的类,但不是磁盘上的图像。如果您希望Windows照片查看器打开图片,您需要将该图像存储在磁盘上的某个位置,因此照片查看器可以找到并打开您的图片。
其次,File.Open
是您open a FileStream
on the specified path with read/write access的功能,但不是运行外部流程来打开文件,就像您想要实现的那样。
总之,如果您希望程序在Windows Photo Viewer中打开图片,则需要
Process.Start()
命令在程序中运行Windows Photo Viewer。这是一个简单的例子:
var bitmap = new Bitmap(AD.Properties.Resources.YourImage);
bitmap.Save("YourImageLocation");
Process.Start("YourIamgeLocation");
有关选择保存位置的一些注意事项是:永远不要选择系统驱动器以避免因缺少写入权限而导致的意外故障。典型的选择是ApplicationData
下的子文件夹。以下是选择适当文件夹的演示:
// here you could replace "YourApplicationName" with any name you want, but
// name it after your application is a better convension
var destPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "YourApplicationName");
var picPath = Path.Combine(destPath, "pic.jpg");
if (!Directory.Exists(destPath))
{
Directory.CreateDirectory(destPath);
}
var bitmap = new Bitmap(Properties.Resources.dust2);
bitmap.Save(picPath);
Process.Start(picPath);
还要记得在使用后删除临时图片,如果这张图片不应保存的话。
答案 1 :(得分:-2)
将该图像添加到应用程序的资源文件夹中。 然后你可以使用:
var img = new Bitmap(Application_name.Properties.Resources.image_name);