- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我取得的成就:
{
panelmain.Controls.Add(abc);
panelmain.Controls.Add(grid1);
string toexport;
toexport = RenderControl(panelmain);
ImageFormatConverter imgc = new ImageFormatConverter();
System.Drawing.Image convertedimage;
convertedimage = (System.Drawing.Image) imgc.ConvertFromString(toexport);
Response.ContentType = "image/jpg";
Response.AppendHeader("Content-Disposition", "inline;filename=tm.jpeg");
Response.BufferOutput = true;
Response.Charset = "utf-8";
Response.Write(convertedimage);
Response.End();
//form1.Controls.Add(abc);
}
public string RenderControl(Control ctrl)
{
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctrl.RenderControl(hw);
Response.Write(sb);
return sb.ToString();
}
错误是:
ImageFormatConverter cannot convert from System.String.
最佳答案
你可能误解了这里的ConvertFromString
的文档,解释:
您正在使用 ImageformatConverter
继承和覆盖 TypeConverter
的类.这意味着 ConvertFromString
是从父类(super class)继承的,但是因为没有办法将字符串转换为图像(除非你有生动的想象力),这个方法总是返回 null(根据文档),或抛出 NotSupportedException
。这是基类的默认行为,覆盖类可以定义自定义行为,在您的情况下,has not been done .
要从字符串转换,您首先必须定义您想要的内容。即,字符串是图像的路径吗?它是一段文本,而您想从中渲染图像吗?它是包含图像的 Base64 编码字符串吗?它是呈现的 HTML 页面还是包含 RTF 文档?一旦您对这些问题有了答案,您就可以选择正确的转换器或图像构造器。
编辑:因为您的问题似乎是关于将 HTML 渲染为图像,请查看 this post at SO ,正如 rchern 所提到的以上。
关于c# - 如何使用 ImageFormatConverter.ConvertFromString 将包含 HTML 响应的字符串转换为图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3594239/
我正在尝试将十六进制值转换为其相应的颜色名称,但 ColorConverter 的 ConvertFromString 方法插入了额外的字符: string s1 = "#000000"; strin
我正在尝试将十六进制值转换为其相应的颜色名称,但 ColorConverter 的 ConvertFromString 方法插入了额外的字符: string s1 = "#000000"; strin
使用 TypeConverter.ConvertFromString(),我需要在从字符串解析数据时提供自定义格式(例如,使用 DateTime:"ddMMyyyy" 或 “MMMM dd, yyyy
这是我取得的成就: 在页面加载中 { panelmain.Controls.Add(abc); panelmain.Controls.Add(grid1); string to
我是一名优秀的程序员,十分优秀!