Skip to main content
 首页 » 编程设计

c#之使用 .net webservice 以像素为单位发送图像

2024年01月01日26JeffreyZhao

我写了一个网络服务,用于以像素形式发送图像。它工作正常,但是当我们在参数中提供大量数据时,它不会获取完整数据。它需要有限的数据或小图像。 这是参数限制吗?或者我如何在参数中提供大数据?

这是我的代码

    [WebMethod] 
    public XmlDocument testuploadimage(string image) 
    { 
 
        XmlDocument login = new XmlDocument(); 
        XmlDeclaration dec = login.CreateXmlDeclaration("1.0", null, null); 
        login.AppendChild(dec); 
        XmlElement root = login.CreateElement("CreateUser"); 
        login.AppendChild(root); 
 
        try 
        { 
 
                string actFolder = Server.MapPath("~/Images/"); 
                string s = image.Replace(" ", string.Empty); 
 
 
                string imgname = DateTime.UtcNow.ToString().Replace(" ", "").Replace("AM", "").Replace("PM", "").Replace("/", "").Replace("-", "").Replace(":", "") + ".png"; 
                //       string imgname = DateTime.UtcNow.ToString("yyyyMMddHHmm") + ".png"; 
 
                byte[] imageBytes = Convert.FromBase64String(image.Replace(" ","+")); 
                MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length); 
                // MemoryStream ms = new MemoryStream(imageBytes); 
                // Convert byte[] to Image 
                //  ms.Write(imageBytes, 0, imageBytes.Length); 
 
                Image image2 = Image.FromStream(ms); 
                image2.Save(actFolder + imgname); 
 
 
                XmlElement root1 = login.CreateElement("uploaded"); 
                root1.InnerText = "true"; 
                root.AppendChild(root1); 
                XmlElement root2 = login.CreateElement("path"); 
                root2.InnerText = "http://Myserver/HeritageWebServices/Images/" + imgname; 
                root.AppendChild(root2); 
 
                return login; 
 
            } 
            catch (Exception ex) 
            { 
                ErrLogMgr.LogErrorMessage(string.Format("{0}{1}", "testuploadimage() for the image :", 
                                                       image), "testUploadimage Inputs", 
                                                        ERRORSOURCE.CSASERVICE); 
                XmlDocument cd = new XmlDocument(); 
                cd.LoadXml("<Message>" + ex + "</Message>"); 
 
 
 
                return cd; 

请您参考如下方法:

两件事

尝试更改 web.config 文件中的 maxRequestLength。

我看到您正在使用 base64 发送图像,您可以尝试在将字节数组转换为 base64 之前压缩字节数组,以缩小图像或尝试转换为更压缩的图像类型(ej:bmp 到 png)。

问候