Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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缩略图图像文件大小-Umbraco字节XSLT_Xslt_Umbraco_Thumbnails - Fatal编程技术网

获取Umbraco缩略图图像文件大小-Umbraco字节XSLT

获取Umbraco缩略图图像文件大小-Umbraco字节XSLT,xslt,umbraco,thumbnails,Xslt,Umbraco,Thumbnails,我正在尝试获取ImageGen为图像库下载部分生成的缩略图jpg的文件大小 我以前在Umbraco 4.2中做过,但我正在尝试更新XSLT,并简化Umbraco 4.9中的XSLT 版本4.2方法: <xsl:value-of select="emint:GetFileSize(((memberGroupFunctions:GetFileSize(concat(substring-before($mediaNode/data [@alias='umbracoFile'],'.'), '_t

我正在尝试获取ImageGen为图像库下载部分生成的缩略图jpg的文件大小

我以前在Umbraco 4.2中做过,但我正在尝试更新XSLT,并简化Umbraco 4.9中的XSLT

版本4.2方法:

<xsl:value-of select="emint:GetFileSize(((memberGroupFunctions:GetFileSize(concat(substring-before($mediaNode/data [@alias='umbracoFile'],'.'), '_thumb_1200.jpg')) div 1024) div 1024))" />
对于版本4.9,我正在尝试执行的操作:

<xsl:value-of select="emint:GetFileSize(((memberGroupFunctions:GetFileSize(concat(substring-before(umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoFile,'.'), '_thumb_1200.jpg')) div 1024) div 1024))" />
我不明白为什么它不起作用。原始图像被上传到媒体服务器,它被切割成各种大小,包括1200和2400。然后在内容部分使用媒体选择器数据类型选择原始图像。然后,我将它和thumb版本作为可下载链接显示在页面上。链接包括图像宽度、高度和文件大小。我就是无法在拇指图像上获得文件大小!显示宽度和高度。但是thumb图像的GetFileSize会导致解析XSLT文件错误

<ul>
        <li>
            <a href="{concat(substring-before(umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoFile,'.'), '_thumb_1200.jpg')}" title="Medium">
                Medium - <xsl:value-of select="emint:GetThumbailFileDimensionWidth(1200, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoHeight div 1, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoWidth div 1)"/> x <xsl:value-of select="emint:GetThumbailFileDimensionHeight(1200, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoHeight div 1, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoWidth div 1)"/> px
            <xsl:value-of select="emint:GetFileSize(((memberGroupFunctions:GetFileSize(concat(substring-before(umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoFile,'.'), '_thumb_1200.jpg')) div 1024) div 1024))" />
            </a>


        </li>
        <li>
            <a href="{concat(substring-before(umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoFile,'.'), '_thumb_2400.jpg')}" title="Large">
                Large - <xsl:value-of select="emint:GetThumbailFileDimensionWidth(2400, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoHeight div 1, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoWidth div 1)"/> x <xsl:value-of select="emint:GetThumbailFileDimensionHeight(2400, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoHeight div 1, umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoWidth div 1)"/> px
                <xsl:value-of select="emint:GetFileSize((umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoBytes div 1024) div 1024)" />
            </a>
        </li>
        <li>
            <a href="{umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoFile}" title="Original File">
                Original File - <xsl:value-of select="umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoWidth" /> x <xsl:value-of select="umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoHeight" /> px
            - <xsl:value-of select="emint:GetFileSize((umbraco.library:GetMedia($currentPage/imageGalleryPhoto, 'false')/umbracoBytes div 1024) div 1024)" />
            </a>
        </li>
    </ul>
下载列表应如何显示的示例:

中等-1200 x 898像素-225 KB 大尺寸-2400 x 1797像素-777 KB 原始文件-6658 x 4984 px-10.20 MB 这是我用于宽度、高度和文件大小转换的C脚本:

<msxsl:script language="C#" implements-prefix="emint">
<![CDATA[public string GetExtension(string fileName)
  { 
  string[] terms = fileName.Split('.');
  if (terms.Length <= 0)
  {
  return string.Empty;
  }
  return terms[terms.Length -1];
  }

  public string GetFileName(string fileName)
  { 
  string[] terms = fileName.Split('/');
  if (terms.Length <= 0)
  {
  return string.Empty;
  }
  return terms[terms.Length -1];
  }

  public string GetFileSize(Decimal mbs)
  { 
  Decimal result = Decimal.Round(mbs, 2);
  if (result == 0)
  {
  result = mbs * 1024;
  return Decimal.Round(result, 2).ToString() + " KB";
  }
  return result.ToString() + " MB";
  } 

    public Decimal GetThumbailSizeRatio(Decimal thumbnailSize, Decimal height, Decimal width)
    {
        Decimal ratio;
        if (height >= width)
        {
            ratio = height / thumbnailSize;
        }
        else
        {
            ratio = width / thumbnailSize;
        }
        return ratio;
    }

    public string GetThumbailFileDimensionHeight(Decimal thumbnailSize, Decimal height, Decimal width)
    {
        Decimal ratio = GetThumbailSizeRatio(thumbnailSize, height, width);
        return Decimal.Round((height / ratio), 0).ToString();
    }

    public string GetThumbailFileDimensionWidth(Decimal thumbnailSize, Decimal height, Decimal width)
    {
        Decimal ratio = GetThumbailSizeRatio(thumbnailSize, height, width);
        return Decimal.Round((width/ ratio), 0).ToString();
    }   

  public string GetCentimeters(Decimal pix)
  {
  Decimal formula  = (decimal)0.026458333;
  Decimal result = pix * formula;
  return Decimal.Round(result,0).ToString();
  }]]>
有人能帮忙吗

干杯,JV

你能用它来生成图像吗

如果是,您必须安装ImageGenerator。这是一个非常有用的工具,可以生成任意大小的图像,您需要在软件包中的Umbraco CMS from Developer部分安装

此外,还有关于如何使用的文档


我希望这将有助于

我使用ImageGen创建缩略图。谢谢你的发帖。