没事可以写插件玩
[C#] 纯文本查看 复制代码 namespace IPlugins
{
public interface IFilter
{
/// <summary>
/// 获取插件显示的名字
/// </summary>
/// <returns>插件名字</returns>
string GetPluginName();
/// <summary>
/// 获取插件在菜单上显示的图标 若不需要显示则返回null
/// </summary>
/// <returns>图标 否则 null</returns>
Image GetPluginIcon();
/// <summary>
/// 用于加载插件时候初始化调用
/// </summary>
/// <param name="strStarPath">主程序启动路径</param>
void InitPlugin(string strStarPath);
ResultInfo ExecFilter(Image imgSrc);
}
}
[C#] 纯文本查看 复制代码 namespace IPlugins
{
public class ResultInfo : IDisposable
{
private Image _ResultImage;
/// <summary>
/// 获取插件处理后的图像
/// </summary>
public Image ResultImage {
get { return _ResultImage; }
}
private bool _IsModified;
/// <summary>
/// 告知程序图片是否被编辑 如果false 则忽略插件操作 如果true 则取出ResultImage作为结果
/// </summary>
public bool IsModified {
get { return _IsModified; }
}
private bool _IsClose;
/// <summary>
/// 如果true则截图窗体关闭 比如编写一个图片编辑器插件
/// 插件得到图片后想独占编辑 则可以在插件中Show一个窗体出来 然后返回一个ResultInfo
/// 并将IsClose设置为true则 截图窗体就关闭了 剩下的操作就可以在自己编写的编辑器中进行
/// </summary>
public bool IsClose {
get { return _IsClose; }
}
public ResultInfo(Image imgResult, bool bModified, bool bClose) {
this._ResultImage = imgResult;
this._IsModified = bModified;
this._IsClose = bClose;
}
public void Dispose() {
if (this._ResultImage != null) this._ResultImage.Dispose();
}
}
} |