c# - 在asp.net中将图片url转换为图片bye

标签 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"。该怎么办 ?谁让你知道。在过去的两天里,我很挣扎。

I just want to convert the url into byte

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

最佳答案

如果您想将 data URI 转换为字节图像,您的输入字符串是不够的。给定以下示例数据 URI:

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

你需要:

  1. 从前面修剪 data: 字符串。
  2. ;字符拆分得到图​​片格式和编码类型。
  3. 如果编码类型为Base64,则需要使用(2)中获取的数据将图片字符串解码回字节数组。

另一方面,如果您想将图像 data.png 更改为相应的 base64 表示形式,那么您需要对代码进行一些更改:

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

关于c# - 在asp.net中将图片url转换为图片bye,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383192/

相关文章:

C#:您建议如何重构这些类? (接口(interface)、聚合或其他任何东西)

c# - DataGridView 单元格编辑

asp.net - GridView Dropdownlist CSS 首字母应为黑色,其余内容应为绿色

c# - 路由 URL 例如 http ://www. example.com/{userId}

asp.net - 本地化:如果在切换文化时 URL 没有改变,SE 是否认为它是重复内容?

c# - javascript ASP.NET hiddenfield 从后面的代码中获取值

c# - 带有简单 DLL 的 SEHException

asp.net - Visual Studio asp.net发布: does it drop current online users

asp.net - .Net iSeries 提供商的 AS 400 性能

c# - 将项目从 VS2008 转换为 Vs2010 后的表示/编码错误