Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回将图像表示为JSON的字节[]?_Javascript_Json_Image_Model View Controller - Fatal编程技术网

Javascript 返回将图像表示为JSON的字节[]?

Javascript 返回将图像表示为JSON的字节[]?,javascript,json,image,model-view-controller,Javascript,Json,Image,Model View Controller,我正在创建一个对象服务器端,它拥有表示对象客户端所需的所有数据。我希望客户端对象具有的属性之一是its图标 目前,我有以下代码。它还没有运行,我只是想和S.O讨论一些事情: public class ComponentDiagramPolygonChild { IconServicesSoapClient IconServicesProxy = new IconServicesSoapClient("IconServicesSoap"); public string Name

我正在创建一个对象服务器端,它拥有表示对象客户端所需的所有数据。我希望客户端对象具有的属性之一是its图标

目前,我有以下代码。它还没有运行,我只是想和S.O讨论一些事情:

public class ComponentDiagramPolygonChild
{
    IconServicesSoapClient IconServicesProxy = new IconServicesSoapClient("IconServicesSoap");

    public string Name { get; set; }
    public byte[] Icon { get; set; }

    public ComponentDiagramPolygonChild(PlanViewComponent planViewComponent)
    {
        Name = planViewComponent.Name;
        //TODO: Can icon ever return null here?
        Icon = IconServicesProxy.GetIconByID(planViewComponent.Icon).Image;
        planViewComponent.
    }
}
在我看来,我有两个选择:

  • 将图标的ID存储为属性,而不是字节[]
  • 将图标存储为字节[]
如果我使用前一个建议,我将需要到服务器,通过向服务器传递图标的ID来请求图像数据。我相信这将是一种更简单的方法——我将返回一个包含图像的内存流,并将该流加载到所需的位置。消极的方面是服务器上的多次点击,这似乎是完全不必要的

如果我使用后一种建议,我将通过网络传递(明显?)更多的数据。我不确定字节数组是否能够正确地进行JSONIZE。我不确定如何获取jsonized字节[]并将其转换为图像数据

有人有过这种情况的经验吗?我应该如何处理这个问题?谢谢


编辑:在阅读了一些内容之后,我觉得前一个选项是我最好的选择。

我认为从技术和编程的角度来看,将数据图像传回去会很酷

您可以使用base64编码版本的图像来实现这一点,大多数现代浏览器都支持这一点。您也可以使用HTML5画布对象来实现

然而,从实用的角度来看,最可维护的解决方案是使用一个ID并让它发出一个单独的HTTP请求。不需要HTML5,几乎所有使用中的浏览器都支持它,您可以重用现有的图像传递系统


如果您的服务器进行了调优,则可以为映像请求额外的HTTP请求,如果您正在处理大量这些映像,则服务器上的CPU负载将大大减少。

我阅读了有关canvas对象的HTML5文档,这激发了我的兴趣。我已经在将这些图像加载到画布中——在利用画布的同时减少对服务器的点击,这听起来很理想。它似乎将“CanvasPixelArray”对象作为数据。这种类型很容易从字节数组转换成字节数组吗?对不起,我对这方面的知识还不够。你可能会在这里的一个新问题中得到一些具体的帮助。