for (int i = 0; i < (DataTable)ViewState["Table_RemarksDetails"]).Rows.Count; i++)
{
string url = Image1.ImageUrl;
Byte[] imgByte = GetBytesFromUrl(url);
obj_ICCommon.Userid = username;
obj_ICCommon.Modules = "Transfer-TO";
obj_ICCommon.Invoiceno = TransferNo;
obj_ICCommon.Comments = ((DataTable)ViewState["Table_RemarksDetails"]).Rows[i]["Comments"].ToString();
//obj_ICCommon.Image = imgByte;
string Result = obj_ICCommon.funinsertRemarks();
fun_InsertRemarksImage(TransferNo, imgByte, ((DataTable)ViewState["Table_RemarksDetails"]).Rows[i]["Comments"].ToString());
}
static public byte[] GetBytesFromUrl(string url)
{
byte[] b;
System.Net.HttpWebRequest myReq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
System.Net.WebResponse myResp = myReq.GetResponse();
Stream stream = myResp.GetResponseStream();
//int i;
using (BinaryReader br = new BinaryReader(stream))
{
//i = (int)(stream.Length);
b = br.ReadBytes(500000);
br.Close();
}
myResp.Close();
return b;
}
此代码抛出无法识别的异常 url。我的网址格式类似于 "data://image.png"。该怎么办 ?谁让你知道。在过去的两天里,我很挣扎。
I just want to convert the url into byte
.如果我的代码错误或任何其他方式都可以将 url 转换为字节。请评论我。提前致谢
最佳答案
如果您想将 data
URI 转换为字节图像,您的输入字符串是不够的。给定以下示例数据 URI:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
你需要:
- 从前面修剪
data:
字符串。 - 按
;
字符拆分得到图片格式和编码类型。 - 如果编码类型为
Base64
,则需要使用(2)中获取的数据将图片字符串解码回字节数组。
另一方面,如果您想将图像 data.png
更改为相应的 base64 表示形式,那么您需要对代码进行一些更改:
- 决定您要阅读的网址。如果它们是网络,例如
http
和https
,那么您的代码应该是好的,因为您正在处理网络请求。如果它们是实际的文件路径,您将需要处理file
URI,因此您的代码会略有不同。 - 您将拥有自己的文件,您需要将其作为字节数组加载。
- 使用以下内容创建一个字符串:
data:image/png;base64,
。 - 附加您在第 2 步中获得的字节数组的 base64 表示。
关于c# - 在asp.net中将图片url转换为图片bye,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383192/