You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2008/03/25 23:52:06 UTC

svn commit: r641064 - in /lenya/trunk/src/modules/svg: imageMetaData.xml sitemap.xmap xslt/parameterize.xsl xslt/scale.xsl

Author: andreas
Date: Tue Mar 25 15:52:01 2008
New Revision: 641064

URL: http://svn.apache.org/viewvc?rev=641064&view=rev
Log:
Allow to omit width or height parameter when resizing images using the svg module.

Added:
    lenya/trunk/src/modules/svg/imageMetaData.xml
    lenya/trunk/src/modules/svg/xslt/parameterize.xsl
Modified:
    lenya/trunk/src/modules/svg/sitemap.xmap
    lenya/trunk/src/modules/svg/xslt/scale.xsl

Added: lenya/trunk/src/modules/svg/imageMetaData.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/svg/imageMetaData.xml?rev=641064&view=auto
==============================================================================
--- lenya/trunk/src/modules/svg/imageMetaData.xml (added)
+++ lenya/trunk/src/modules/svg/imageMetaData.xml Tue Mar 25 15:52:01 2008
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<svg:svg xmlns:svg="http://www.w3.org/2000/svg"
+  xmlns:media="http://apache.org/lenya/metadata/media/1.0"
+  xmlns:meta="http://apache.org/lenya/meta/1.0/">
+  <media:width><meta:value element="width" ns="http://apache.org/lenya/metadata/media/1.0"
+    uuid="" lang=""/></media:width>
+  <media:height><meta:value element="height" ns="http://apache.org/lenya/metadata/media/1.0"
+    uuid="" lang=""/></media:height>
+</svg:svg>
\ No newline at end of file

Modified: lenya/trunk/src/modules/svg/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/svg/sitemap.xmap?rev=641064&r1=641063&r2=641064&view=diff
==============================================================================
--- lenya/trunk/src/modules/svg/sitemap.xmap (original)
+++ lenya/trunk/src/modules/svg/sitemap.xmap Tue Mar 25 15:52:01 2008
@@ -87,7 +87,15 @@
           </map:act>  
         </map:match>
         
-        <map:generate src="dummy.xml"/>
+        <map:generate src="imageMetaData.xml"/>
+        <map:transform src="fallback://lenya/modules/svg/xslt/parameterize.xsl">
+          <map:parameter name="uuid" value="{page-envelope:document-uuid}"/>
+          <map:parameter name="language" value="{page-envelope:document-language}"/>
+        </map:transform>
+        <map:transform type="metaData">
+          <map:parameter name="pubid" value="{1}"/>
+          <map:parameter name="area" value="{2}"/>
+        </map:transform>
         <map:act type="resource-exists">
           <map:parameter name="url" value="lenya-document:{page-envelope:document-uuid},lang={page-envelope:document-language},pub={1},area={2}"/>
           <map:transform src="xslt/scale.xsl">

Added: lenya/trunk/src/modules/svg/xslt/parameterize.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/svg/xslt/parameterize.xsl?rev=641064&view=auto
==============================================================================
--- lenya/trunk/src/modules/svg/xslt/parameterize.xsl (added)
+++ lenya/trunk/src/modules/svg/xslt/parameterize.xsl Tue Mar 25 15:52:01 2008
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+  
+  <xsl:param name="uuid"/>
+  <xsl:param name="language"/>
+  
+  
+  <xsl:template match="@uuid">
+    <xsl:attribute name="uuid"><xsl:value-of select="$uuid"/></xsl:attribute>
+  </xsl:template>
+  
+  
+  <xsl:template match="@lang">
+    <xsl:attribute name="lang"><xsl:value-of select="$language"/></xsl:attribute>
+  </xsl:template>
+  
+
+  <xsl:template match="@*|node()" priority="-1">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+  
+
+</xsl:stylesheet>
\ No newline at end of file

Modified: lenya/trunk/src/modules/svg/xslt/scale.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/svg/xslt/scale.xsl?rev=641064&r1=641063&r2=641064&view=diff
==============================================================================
--- lenya/trunk/src/modules/svg/xslt/scale.xsl (original)
+++ lenya/trunk/src/modules/svg/xslt/scale.xsl Tue Mar 25 15:52:01 2008
@@ -18,15 +18,35 @@
 <xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:svg="http://www.w3.org/2000/svg"
-  xmlns:xlink="http://www.w3.org/1999/xlink">
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  xmlns:media="http://apache.org/lenya/metadata/media/1.0">
   
   <xsl:param name="url"/>
   <xsl:param name="height"/>
   <xsl:param name="width"/>
   
-  <xsl:template match="/">
-    <svg width="{$width}" height="{$height}" version="1.1">
-      <image x="0" y="0" width="{$width}" height="{$height}" xlink:href="{$url}" preserveAspectRatio="none"/>        
+  <xsl:variable name="imgWidth" select="/svg:svg/media:width"/>
+  <xsl:variable name="imgHeight" select="/svg:svg/media:height"/>
+  
+  <xsl:variable name="targetWidth">
+    <xsl:choose>
+      <xsl:when test="$width"><xsl:value-of select="$width"/></xsl:when>
+      <xsl:when test="$height"><xsl:value-of select="($height div $imgHeight) * $imgWidth"/></xsl:when>
+      <xsl:otherwise><xsl:value-of select="$imgWidth"/></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  
+  <xsl:variable name="targetHeight">
+    <xsl:choose>
+      <xsl:when test="$height"><xsl:value-of select="$height"/></xsl:when>
+      <xsl:when test="$width"><xsl:value-of select="($width div $imgWidth) * $imgHeight"/></xsl:when>
+      <xsl:otherwise><xsl:value-of select="$imgHeight"/></xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  
+  <xsl:template match="/svg:svg">
+    <svg width="{$targetWidth}" height="{$targetHeight}" version="1.1">
+      <image x="0" y="0" width="{$targetWidth}" height="{$targetHeight}" xlink:href="{$url}" preserveAspectRatio="none"/>        
     </svg>
   </xsl:template>
   



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org