You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by up...@apache.org on 2003/07/03 11:43:25 UTC

cvs commit: cocoon-2.1/src/java/org/apache/cocoon/reading ImageReader.java

upayavira    2003/07/03 02:43:25

  Modified:    src/documentation/xdocs/userdocs/readers book.xml
                        image-reader.xml
               src/java/org/apache/cocoon/reading ImageReader.java
  Log:
  Added parameter to image reader to allow the prevention of image enlarging (whilst still allowing image size reduction)
  Updated docs to include this change
  Moved image reader from scratchpad to core in book.xml
  
  Revision  Changes    Path
  1.2       +1 -1      cocoon-2.1/src/documentation/xdocs/userdocs/readers/book.xml
  
  Index: book.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/userdocs/readers/book.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- book.xml	9 Mar 2003 00:08:22 -0000	1.1
  +++ book.xml	3 Jul 2003 09:43:25 -0000	1.2
  @@ -12,6 +12,7 @@
       <menu-item label="Resource Reader" href="resource-reader.html"/>
     </menu>
     <menu label="Core">
  +    <menu-item label="Image Reader" href="image-reader.html"/>
     </menu>
     <menu label="Optional">
       <menu-item label="Database Reader" href="database-reader.html"/>
  @@ -21,7 +22,6 @@
       <menu-item label="AxisRPC Reader" href="axisrpc-reader.html"/>
       <menu-item label="Byte Range Resource Reader" href="byterangeresource-reader.html"/>
       <menu-item label="Directory ZIP Archiver" href="directoryziparchiver-reader.html"/>
  -    <menu-item label="Image Reader" href="image-reader.html"/>
     </menu>
   </book>
   
  
  
  
  1.2       +16 -2     cocoon-2.1/src/documentation/xdocs/userdocs/readers/image-reader.xml
  
  Index: image-reader.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/userdocs/readers/image-reader.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- image-reader.xml	9 Mar 2003 00:08:22 -0000	1.1
  +++ image-reader.xml	3 Jul 2003 09:43:25 -0000	1.2
  @@ -8,6 +8,7 @@
       <type>Technical document</type>
       <authors>
         <person name="Bernhard Huber" email="huber@apache.org"/>
  +      <person name="Upayavira" email="upayavira@apache.org"/>      
       </authors>
       <abstract>This document describes the ImageReader of Cocoon.</abstract>
     </header>
  @@ -112,7 +113,7 @@
               <td>
                 This parameter is optional. When specified it determines the width
                 of the binary image.
  -              If no height parameter is specified the ascpect ratio
  +              If no height parameter is specified the aspect ratio
                 of the image is kept.
               </td>
             </tr>
  @@ -120,10 +121,21 @@
               <td>
                 This parameter is optional. When specified it determines the width
                 of the binary image.
  -              If no width parameter is specified the ascpect ratio
  +              If no width parameter is specified the aspect ratio
                 of the image is kept.
               </td>
             </tr>
  +          <tr><td>allow-enlarging</td><td>Allow or prevent the enlarging of images</td>
  +            <td>
  +              This parameter is optional. The <code>width</code> and <code>height</code> parameters allow an image 
  +              to be resized. By default, if the image is smaller than the specified 
  +              width and height, the image will be enlarged. In some circumstances, this
  +              behaviour is undesirable, and can be switched off by setting this parameter
  +              to <code>no</code>. With this parameter set to <code>no</code>, images will 
  +              be reduced in size, but not enlarged. The default for this parameter is 
  +              <code>yes</code>.
  +            </td>
  +          </tr>
           </table>
           <p>
             The following pipeline snippet
  @@ -170,6 +182,8 @@
           <br/>
           01-06-03: Renamed the expire-time -> expires parameter,
                     Fixed the statement about the byte range support, Torsten Curdt
  +        <br/>
  +        03-07-03: Added allow-enlarging parameter, Upayavira
         </p>
       </s1>
       <s1 title="Copyright">
  
  
  
  1.2       +20 -1     cocoon-2.1/src/java/org/apache/cocoon/reading/ImageReader.java
  
  Index: ImageReader.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/java/org/apache/cocoon/reading/ImageReader.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ImageReader.java	27 Jun 2003 20:10:43 -0000	1.1
  +++ ImageReader.java	3 Jul 2003 09:43:25 -0000	1.2
  @@ -98,6 +98,8 @@
   
       private int width;
       private int height;
  +    private boolean enlarge;
  +    private final static String ENLARGE_DEFAULT = "true";
   
       public void setup(SourceResolver resolver, Map objectModel, String src, Parameters par)
               throws ProcessingException, SAXException, IOException {
  @@ -106,6 +108,13 @@
   
           width = par.getParameterAsInteger("width", 0);
           height = par.getParameterAsInteger("height", 0);
  +
  +        String enlargePar = par.getParameter("allow-enlarging", ENLARGE_DEFAULT);
  +        if ("true".equalsIgnoreCase(enlargePar) || "yes".equalsIgnoreCase(enlargePar)){
  +            enlarge = true;
  +        } else {
  +            enlarge = false;
  +        }
       }
   
       /** 
  @@ -137,9 +146,19 @@
               }
           }
   
  +        if (!enlarge) {
  +            if ((nw > ow && nh <= 0) || (oh > nh && nw <=0)) {
  +                wm = 1.0d;
  +                hm = 1.0d;
  +            } else if (nw > ow) {
  +                wm = 1.0d;
  +            } else if (nh > oh) {
  +                hm = 1.0d;
  +            }
  +        }
           return new AffineTransform(wm, 0.0d, 0.0d, hm, 0.0d, 0.0d);
       }
  -    
  +
       protected void processStream() throws IOException, ProcessingException {
           if (width > 0 || height > 0) {
               if (getLogger().isDebugEnabled()) {