Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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/0/docker/9.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
Umbraco媒体类型中的多图像SVG文件_Svg_Png_Jpeg_Umbraco_Opacitymask - Fatal编程技术网

Umbraco媒体类型中的多图像SVG文件

Umbraco媒体类型中的多图像SVG文件,svg,png,jpeg,umbraco,opacitymask,Svg,Png,Jpeg,Umbraco,Opacitymask,我很擅长Razor/MVC,但对翁布拉科来说是个新手。我有一个源代码设计,包含一个Jpeg和一个包装在SVG中的灰度PNG,这样我就可以在比平时少得多的内存中获得透明的背景图像 我只是想知道如何在Umbraco中设置一个媒体类型,将SVG文件和支持的位图放在同一个文件夹中 我尝试创建一个带有3个上载槽的新媒体类型,它将新类型创建为文件夹类型,但当我查看我的文件夹/media/1071时,它只包含SVG 有没有办法让Umbraco将所有3个文件上传到同一个文件夹,以便SVG文件可以找到支持文件 谢

我很擅长Razor/MVC,但对翁布拉科来说是个新手。我有一个源代码设计,包含一个Jpeg和一个包装在SVG中的灰度PNG,这样我就可以在比平时少得多的内存中获得透明的背景图像

我只是想知道如何在Umbraco中设置一个媒体类型,将SVG文件和支持的位图放在同一个文件夹中

我尝试创建一个带有3个上载槽的新媒体类型,它将新类型创建为文件夹类型,但当我查看我的文件夹/media/1071时,它只包含SVG

有没有办法让Umbraco将所有3个文件上传到同一个文件夹,以便SVG文件可以找到支持文件

谢谢


Mark

我不确定这是否是Umbraco中的正确方法,但我确实设法让我的透明JPeg类型的东西正常工作

我没有创建新的媒体类型,而是创建了新的文档类型。我还为文档类型创建了一个默认模板

通过在文档类型中添加两个媒体选择器属性,并在模板中将内容类型设置为“image/svg+xml”,我能够从模板动态生成适当的svg文件

这是我的新DocType的模板

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
    Layout = null;

    UmbracoContext.HttpContext.Response.ContentType = "image/svg+xml";  

    var colourLayer = Umbraco.Media(Umbraco.Field("colourLayer").ToString());
    var maskLayer = Umbraco.Media(Umbraco.Field("maskLayer").ToString());
}<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 @colourLayer.umbracoWidth @colourLayer.umbracoHeight" enable-background="new 0 0 @colourLayer.umbracoWidth @colourLayer.umbracoHeight" xml:space="preserve">
  <image overflow="visible" width="@colourLayer.umbracoWidth" height="@colourLayer.umbracoHeight" mask="url(#imgmask)" xlink:href="@colourLayer.umbracoFile" />
  <mask id="imgmask">
    <image overflow="visible" width="@colourLayer.umbracoWidth" height="@colourLayer.umbracoHeight" xlink:href="@maskLayer.umbracoFile" />
  </mask>
</svg>
@继承Umbraco.Web.Mvc.UmbracoTemplatePage
@{
布局=空;
UmbracoContext.HttpContext.Response.ContentType=“image/svg+xml”;
var colorLayer=Umbraco.Media(Umbraco.Field(“colorLayer”).ToString());
var maskLayer=Umbraco.Media(Umbraco.Field(“maskLayer”).ToString();
}
请让我知道,如果这不是在翁布拉科做的事情。我更喜欢和一个系统一起工作,而不是反对它