我有以下基础64图像:
var image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0gA...';
Run Code Online (Sandbox Code Playgroud)
我用它Convert.FromBase64String()来转换为字节:
byte[] bytes = Convert.FromBase64String(convert);
Run Code Online (Sandbox Code Playgroud)
但在此之前,我需要删除Base 64字符串的标题(即data:image/png;base64).我这样做使用:
string convert = image.Replace("data:image/png;base64,", string.Empty);
Run Code Online (Sandbox Code Playgroud)
我可以分别为所有图像扩展编写相同的语句,但这些图像非常大,扫描每个图像似乎效率低下.
我搜索了这个在PHP中使用正则表达式来切断标题部分的解决方案,而PHP中的其他答案使用了内置方法get_contents.
我的问题是:是否有任何内置方法只能在C#中获取base 64 url的内容?如果没有,那么是否有任何通用的方法去除所有扩展的标题?
Ron*_*nan 11
你可以尝试这样的事情:
string result = Regex.Replace(image, @"^data:image\/[a-zA-Z]+;base64,", string.Empty);
Run Code Online (Sandbox Code Playgroud)
这应该抓住不同的扩展。我还没有测试过这个,所以它可能需要一些摆弄。
既然您知道,字符串中唯一的实例将是前导码和数据之间的分隔符,那么您可以在没有正则表达式的情况下执行此操作:
string convert = image.Substring(image.IndexOf(",") + 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4291 次 |
| 最近记录: |