C#代码:
string base64string = Textbox1.Text;
string converted = base64string.Replace('-', '+');
converted = converted.Replace('_', '/');
try
{
// Convert base64string to bytes array
Byte[] bytes = Convert.FromBase64String(converted);
gif = iTextSharp.text.Image.GetInstance(bytes);
}
Run Code Online (Sandbox Code Playgroud)
Textbox1.Text包含
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUYAAADICAYAAAAkwztuAAAgAElEQVR4Xu3db6wdVd0v8KX2UGlLRfPE8JgIWiUc3yikvqt/ohi1L1Q04u2VCiVq0UpjTIAcCUewxj9YOAakgR7808TEe28rFpOSFKI3xPhGQk1jWyOJN+gLlQYLCtQoT4V7Zj+Z7Zw5s//v2XvNzKdJE+nZs+a3Pr91tvt8z5qZl7y49Cf4Q4AAAQIECBAgQIAAAQIECBAgQIAAgQYJvEQw2qBumyoBAgQIECBAgAABAgQIECBAgAABAi0BwaiFQIAAAQIECBAgQIAAAQIECBAgQIBA4wQEo41ruQkTIECAAAECBAgQIECAAAECBAgQICAYtQYIECBAgAABAgQIECBAgAABAgQIEGicgGC0cS03YQIECBAgQIAAAQIECBAgQIAAAQIEBKPWAAECBAgQIECAAA....
Run Code Online (Sandbox Code Playgroud)
它是一个正确的格式,但我仍然得到错误.
你需要跳过这个:data:image/png;base64,,所以试试类似:
string base64string = Textbox1.Text.Substring(22);
Run Code Online (Sandbox Code Playgroud)
这将获取字符串中前22个字符后的所有内容.请注意,在执行此操作之前,您可能需要验证文本框中是否有超过22个字符,只是为了确保它不为空.
编辑:也许更好的方法是:
var text = Textbox1.Text;
var metadataStart = text.IndexOf("data:image/png;base64,");
if(start != -1)
{
// Remove the metadata if found
text = text.Remove(metadataStart, metadataStart + 22);
}
Run Code Online (Sandbox Code Playgroud)
在此之后,你可以继续转换text.
| 归档时间: |
|
| 查看次数: |
9171 次 |
| 最近记录: |