在asp.net中将图片网址转换为图片再见

时间:2018-05-17 04:06:36

标签: c# asp.net

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”。该怎么办 ?任何人都会让你知道。在过去的两天里我很挣扎。

  

我只想将url转换为byte

。如果我的代码错误或任何其他方式可以将url转换为byte。请评论我。提前致谢

1 个答案:

答案 0 :(得分:0)

如果要将data URI转换为字节图像,则输入字符串不足。给出以下示例数据URI:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" 

你需要:

  1. 从前面修剪data:字符串。
  2. ;字符拆分以获取图像格式和编码类型。
  3. 如果编码类型为Base64,则需要使用(2)中获得的数据将图像字符串解码回字节数组。
  4. 另一方面,如果您想将图像data.png更改为相应的base64表示,则需要对代码进行一些更改:

    1. 决定您要阅读的网址。如果它们是网络,例如httphttps,那么您的代码应该很好,因为您正在处理网络请求。如果它们是实际的文件路径,则需要处理file URI,因此您的代码会略有不同。
    2. 您将获得文件,您需要将其作为字节数组加载。
    3. 使用以下内容创建一个字符串:data:image/png;base64,
    4. 附加在步骤2中获得的字节数组的base64表示。