Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.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
C# 是否可以从sitecore中用户上传的图像创建精灵?_C#_Ios_Sitecore - Fatal编程技术网

C# 是否可以从sitecore中用户上传的图像创建精灵?

C# 是否可以从sitecore中用户上传的图像创建精灵?,c#,ios,sitecore,C#,Ios,Sitecore,我们正在构建一个以图像为基础的sitecore应用程序 目前,我们看到iOS上有大量图像的页面性能下降 我们的大多数图像都在精灵中,但用户图像当前是一个接一个地加载的 是否有人想出了一种从上传到sitecore的图像生成精灵的方法?我找到了这篇关于如何使用svg处理sitecore中精灵的文章 我希望它能帮助您解决您的问题。我以前在这个主题上做过一些概念性的工作,但还没有找到时间进行真正的实现。但我会尝试分享一些关于如何做到这一点的想法 首先,您必须确定应该在精灵中的图像。这可以在页面请求时通过

我们正在构建一个以图像为基础的sitecore应用程序

目前,我们看到iOS上有大量图像的页面性能下降

我们的大多数图像都在精灵中,但用户图像当前是一个接一个地加载的

是否有人想出了一种从上传到sitecore的图像生成精灵的方法?

我找到了这篇关于如何使用svg处理sitecore中精灵的文章


我希望它能帮助您解决您的问题。

我以前在这个主题上做过一些概念性的工作,但还没有找到时间进行真正的实现。但我会尝试分享一些关于如何做到这一点的想法

首先,您必须确定应该在精灵中的图像。这可以在页面请求时通过遍历项字段和潜在的相关项来完成,或者如果您有任何其他逻辑可以从中获得此信息。如果列表是静态的,最好在发布时确定。基本上,您需要每个图像的guid、宽度和高度。您还需要了解您有哪些图像大小调整规则。精灵中的图像需要具有相同的宽度或高度。否则,如果没有大的空白区域,就很难对它们进行分组

当您拥有一组图像时,您可以获取MediaItems并找到为sprite构建html代码所需的信息。基本上是每个图像在精灵中所处的X和Y坐标,以便正确呈现html。这也会产生一个包含创建精灵的所有信息的对象。可以为该对象分配一个guid,您可以在图像url中使用该guid来请求精灵

注意,如果您在一个多服务器环境中,您必须研究您想要使用什么策略来持久化关于精灵的数据。例如,您可以将其存储在Mongo中(如果有的话),或者使用可从所有content deliver服务器访问的数据库。在多服务器环境中,html请求可能位于一台服务器上,图像精灵请求位于另一台服务器上,因此必须能够仅从图像url中的信息检索或构建精灵。(这也是在单服务器环境中的最佳实践,但它变得简单多了)

然后,您将创建一个获取精灵对象guid的图像请求处理程序,从持久化的精灵对象中,它将获取媒体项,可以选择执行大小调整等,并将它们渲染到位图上。然后,位图可以保存为jpg/png,并缓存在磁盘(或其他合适的服务)上,然后返回到客户端

当然,这其中的每一部分都有很多不同的方法,其中大部分取决于您可以将哪些数据放入您的精灵中(数据驱动、用户手工挑选当前项目或相关项目、个性化的使用等),如果您可以对精灵对象执行预计算并在发布时生成精灵,或者如果必须在渲染时生成精灵,那么您的宿主环境会是什么样子等等


希望这有帮助

在用户滚动到视图之前延迟加载图像如何?或者点击
getMediaStream
管道来减小大小?我喜欢你的想法!我在发布这篇文章后也有同样的想法,但我仍然对精灵感到好奇。你的另一个选择是使用CDN作为媒体。