从WPF应用程序编辑和保存图像

时间:2013-08-09 16:43:28

标签: .net wpf image

我的应用程序附带了一个模板图像,我希望用户能够打开它,编辑它并将其作为新图像保存在本地。我已经按照此处列出的Open an image with the Windows default editor in C#

开始工作

我真正需要做的是打开它不允许保存,只是另存为。我还想指定目标文件夹。有谁知道你是否可以用verbage做到这一点?

感谢。

2 个答案:

答案 0 :(得分:1)

无控制

除非应用程序允许通过环境变量或命令参数或其他一些设置选项的方式进行控制,否则您无法对打开的应用程序进行这种控制。当您启动另一个应用程序时,您对它如何处理文件感到怜悯。如果您想要更多控制权,那么您必须使用适合您应用内部的图像编辑器控件。

嵌入式图像编辑器

图像编辑是一项复杂的任务。 existing libraries中提供了以几何方式或使用着色器更改图像的过滤器。但是如果你想要更复杂的效果,如取景,添加文字等,你需要一个专业的图像编辑库。大牌图片编辑不会将其产品作为图书馆提供,但您可以找到for-sale solutions on the market。如果你想要一些允许更多复合效果的东西,你可能需要image-scrape the results of overlaying WPF elements on an existing image

模板图片作为资源

另一种方法是让模板成为您的应用程序中的资源或您提供的dll,它们无法保存。您将资源拉出,将其作为文件写出,然后在默认编辑器中打开该文件。然后他们可以保存,另存为等,而不会有覆盖原始模板的风险。但是你仍然无法控制他们拯救的地方。你也不知道他们甚至做了什么。无论是关闭而不保存,保存到某个位置,保存在文件上,都将为您所知。您可以监控文件夹位置,但除非应用程序提供该信息,否则您将无法获取数据。

限制保存位置

现在,一旦你解决了,目标文件夹就是一个大问题。文件对话框没有直接限制文件位置的方法。因此,您需要不使用文件对话框或挂钩file-ok event

file-ok事件使您有机会取消保存/加载并使对话框保持打开状态,但如果您打算将文件限制在单个文件夹中,我认为您最好创建自己的对话框。

答案 1 :(得分:0)

动词与文件类型有关,而不是保存对话框。如果用户选择"另存为"你会怎么做?你的原始文件?

我认为您需要将编辑器拉入应用程序并从那里控制保存对话框。

或者您可以尝试保留文件的备份副本,如果原始文件通过系统更改工作以替换文件。