Author: reto
Date: Thu Dec 17 21:21:04 2009
New Revision: 891913

URL: http://svn.apache.org/viewvc?rev=891913&view=rev
Log:
CLEREZZA-42: closing

Removed:
    incubator/clerezza/issues/CLEREZZA-42/
Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/pom.xml
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/src/main/java/org/apache/clerezza/utils/imagemagick/ImageMagickProvider.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/
   (props changed)
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/pom.xml
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/ImageProcessor.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/JavaGraphicsProvider.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/test/java/org/apache/clerezza/utils/imageprocessing/ImageProcessorTest.java

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Dec 17 21:21:04 2009
@@ -0,0 +1 @@
+/incubator/clerezza/issues/CLEREZZA-42/org.apache.clerezza.utils.imagemagick:891740-891799

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/pom.xml?rev=891913&r1=891912&r2=891913&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/pom.xml
 Thu Dec 17 21:21:04 2009
@@ -34,5 +34,9 @@
                        
<artifactId>org.apache.clerezza.rdf.jena.serializer</artifactId>
                        <scope>test</scope>
                </dependency>
+               <dependency>
+                       <groupId>org.apache.felix</groupId>
+                       
<artifactId>org.apache.felix.scr.annotations</artifactId>
+               </dependency>
        </dependencies>
 </project>
\ No newline at end of file

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/src/main/java/org/apache/clerezza/utils/imagemagick/ImageMagickProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/src/main/java/org/apache/clerezza/utils/imagemagick/ImageMagickProvider.java?rev=891913&r1=891912&r2=891913&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/src/main/java/org/apache/clerezza/utils/imagemagick/ImageMagickProvider.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imagemagick/src/main/java/org/apache/clerezza/utils/imagemagick/ImageMagickProvider.java
 Thu Dec 17 21:21:04 2009
@@ -49,6 +49,11 @@
 import 
org.apache.clerezza.utils.imageprocessing.metadataprocessing.IptcDataSet;
 import org.apache.clerezza.utils.imageprocessing.metadataprocessing.MetaData;
 import 
org.apache.clerezza.utils.imageprocessing.metadataprocessing.MetaDataProcessor;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
 
 /**
  * This class implements interfaces that execute system calls to imageMagick.
@@ -60,25 +65,20 @@
  * at: <a href='http://www.imagemagick.org/'>http://www.imagemagick.org/</a>.
  * </p>
  * 
- * @scr.component
- * @scr.service 
interface="org.apache.clerezza.utils.imageprocessing.ImageProcessor"
- * @scr.property name="convert" value="convert"
- *               description="Specifies the ImageMagick convert command."
- * @scr.property name="identify" value="identify"
- *               description="Specifies the ImageMagick identify command."
- * @scr.property type="Integer" value="6" name="release_number"
- *                              description="Specifies ImageMagick release 
number (Syntax: release.version.majorRevision-minorRevision)."
- * @scr.property type="Integer" value="5" name="version_number"
- *                              description="Specifies ImageMagick version 
number (Syntax: release.version.majorRevision-minorRevision)."
- * @scr.property type="Integer" value="2" name="major_release_number"
- *                              description="Specifies ImageMagick major 
revision number (Syntax: release.version.majorRevision-minorRevision)."
- * @scr.property type="Integer" value="10" name="minor_release_number"
- *                              description="Specifies ImageMagick minor 
revision number (Syntax: release.version.majorRevision-minorRevision)."
- * @scr.property name="service.ranking" value=100
- * 
  * @author tio, hasan, daniel
  */
-public class ImageMagickProvider implements ImageProcessor, MetaDataProcessor {
+...@component(metatype=true)
+...@properties({       
+       @Property(name="convert", value="convert", description="Specifies the 
ImageMagick convert command."),
+       @Property(name="identify", value="identify", description="Specifies the 
ImageMagick identify command."),
+       @Property(name="release_number", intValue=6, description="Specifies 
ImageMagick release number (Syntax: 
release.version.majorRevision-minorRevision)."),
+       @Property(name="version_number", intValue=5, description="Specifies 
ImageMagick version number (Syntax: 
release.version.majorRevision-minorRevision)."),
+       @Property(name="major_release_number", intValue=2, 
description="Specifies ImageMagick major revision number (Syntax: 
release.version.majorRevision-minorRevision)."),
+       @Property(name="minor_release_number", intValue=10, 
description="Specifies ImageMagick minor revision number (Syntax: 
release.version.majorRevision-minorRevision)."),
+       @Property(name="service.ranking", value="100")
+       })
+...@service(ImageProcessor.class)
+public class ImageMagickProvider extends ImageProcessor implements 
MetaDataProcessor {
 
        private String convert = "convert";
        private String identify = "identify";
@@ -87,9 +87,7 @@
        private int imagemagickRevisionMajorNumber = 2;
        private int imagemagickRevisionMinorNumber = 10;
 
-       /**
-        * @scr.reference
-        */
+       @Reference
        private Serializer serializer;
 
        private final Logger logger = LoggerFactory.getLogger(getClass());
@@ -300,22 +298,11 @@
                List<String> command = new ArrayList<String>(10);
                command.add(convert);
                command.add("-geometry");
-               command.add(resizeFactor + "%");
+               command.add(100 * resizeFactor + "%");
 
                return processImage(command, 100, image);
        }
 
-       @Override
-       public BufferedImage makeAThumbnail(BufferedImage image, int newWidth,
-                       int newHeight) {
-               BufferedImage tmp = resizeProportional(image, newWidth, 
newHeight);
-               if (tmp == null) {
-                       return null;
-               } else {
-                       return crop(tmp, newWidth, newHeight);
-               }
-       }
-
        private BufferedImage crop(BufferedImage image, int newWidth, int 
newHeight) {
                List<String> command = new ArrayList<String>(10);
                command.add(convert);

Propchange: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Dec 17 21:21:04 2009
@@ -0,0 +1 @@
+/incubator/clerezza/issues/CLEREZZA-42/org.apache.clerezza.utils.imageprocessing:891738-891799

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/pom.xml?rev=891913&r1=891912&r2=891913&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/pom.xml
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/pom.xml
 Thu Dec 17 21:21:04 2009
@@ -33,4 +33,8 @@
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>jsr311-api</artifactId>
                </dependency>
+               <dependency>
+                       <groupId>org.apache.felix</groupId>
+                       
<artifactId>org.apache.felix.scr.annotations</artifactId>
+               </dependency>
        </dependencies></project>
\ No newline at end of file

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/ImageProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/ImageProcessor.java?rev=891913&r1=891912&r2=891913&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/ImageProcessor.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/ImageProcessor.java
 Thu Dec 17 21:21:04 2009
@@ -26,9 +26,9 @@
  * <code>java.awt.image.BufferedImage</code>. BufferedImage is an accessible
  * buffer of image data (pixels and their RGB colors).
  * 
- * @author tio, hasan
+ * @author tio, hasan, mir
  */
-public interface ImageProcessor {
+public abstract class ImageProcessor {
 
        /**
         * Makes an image translucent. The parameter translucency has to be in 
the 
@@ -37,7 +37,7 @@
         * @param image
         * @param translucency
         */
-       public BufferedImage makeImageTranslucent(BufferedImage image,
+       public abstract BufferedImage makeImageTranslucent(BufferedImage image,
                        float translucency);
 
        /**
@@ -46,7 +46,7 @@
         * @param image
         * @param color
         */
-       public BufferedImage makeColorTransparent(BufferedImage image, Color 
color);
+       public abstract BufferedImage makeColorTransparent(BufferedImage image, 
Color color);
 
        /**
         * Flips an image
@@ -56,7 +56,7 @@
         *              0 means horizontal
         *              1 means vertical
         */
-       public BufferedImage flip(BufferedImage image, int direction);
+       public abstract BufferedImage flip(BufferedImage image, int direction);
 
        /**
         * Rotates an image by an angle defined in degrees.
@@ -66,7 +66,7 @@
         * @param image
         * @param angle
         */
-       public BufferedImage rotate(BufferedImage image, int angle);
+       public abstract BufferedImage rotate(BufferedImage image, int angle);
 
        /**
         * Resizes an image
@@ -75,7 +75,7 @@
         * @param newWidth
         * @param newHeight
         */
-       public BufferedImage resize(BufferedImage image, int newWidth, int 
newHeight);
+       public abstract BufferedImage resize(BufferedImage image, int newWidth, 
int newHeight);
 
        /**
         * Resizes an image proportionally. 
@@ -89,7 +89,7 @@
         * @param newWidth
         * @param newHeight
         */
-       public BufferedImage resizeProportional(BufferedImage image, int 
newWidth,
+       public abstract BufferedImage resizeProportional(BufferedImage image, 
int newWidth,
                        int newHeight);
 
        /**
@@ -100,7 +100,7 @@
         * @param resizeFactorWidth
         * @param resizeFactorHeight
         */
-       public BufferedImage resizeRelative(BufferedImage image,
+       public abstract BufferedImage resizeRelative(BufferedImage image,
                        float resizeFactorWidth, float resizeFactorHeight);
 
        /**
@@ -110,18 +110,30 @@
         * @param image
         * @param resizeFactor
         */
-       public BufferedImage resizeRelativeProportional(BufferedImage image,
+       public abstract BufferedImage resizeRelativeProportional(BufferedImage 
image,
                        float resizeFactor);
 
        /**
-        * Create a thumbnail of the image. First the image will be resized and
-        * cropped if necessary to obtain the end size as specified in the 
parameter
-        * newWidth and newHeight.
-        * 
-        * @param image
-        * @param newWidth
-        * @param newHeight
-        */
-       public BufferedImage makeAThumbnail(BufferedImage image,
-                       int newWidth, int newHeight);
+        * Create a thumbnail of the image. The image is scaled down so that 
height
+        * and width are smaller or equals to <code>height</code> and
+        * <code>width</code> respectively. If image is already smaller or 
equals
+        * <code>width</code> x <code>height</code> image is returned without
+        * transformation.
+        * 
+        * @param image The image from which the thumbnails is derived.
+        * @param width The maximum width of the thumbnail
+        * @param height The maximum height of the thumbnail
+        */
+       public BufferedImage makeAThumbnail(BufferedImage image, int width, int 
height) {
+               int imgWidth = image.getWidth();
+               int imgHeight = image.getHeight();
+               if (imgWidth <= width && imgHeight <= height) {
+                       return image;
+               }
+               float propWidth = (float) width / imgWidth;
+               float propHeight = (float) height / imgHeight;
+               float factor = (propWidth < propHeight) ? propWidth : 
propHeight;
+               BufferedImage img = resizeRelativeProportional(image, factor);
+               return img;
+       }
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/JavaGraphicsProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/JavaGraphicsProvider.java?rev=891913&r1=891912&r2=891913&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/JavaGraphicsProvider.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/main/java/org/apache/clerezza/utils/imageprocessing/JavaGraphicsProvider.java
 Thu Dec 17 21:21:04 2009
@@ -30,19 +30,22 @@
 import java.awt.image.DirectColorModel;
 import java.awt.image.IndexColorModel;
 import java.awt.image.PackedColorModel;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 
 /**
- * @scr.component
- * @scr.service
- *                     
interface="org.apache.clerezza.utils.imageprocessing.ImageProcessor"
+ * <code>ImageProcessor</code> implementation based on the Java Abstract
+ * Windowing Toolkit.
  * 
  * @author tio, hasan
  */
-public class JavaGraphicsProvider implements ImageProcessor {
+...@component
+...@service(ImageProcessor.class)
+public class JavaGraphicsProvider extends ImageProcessor {
 
        private final Logger logger = LoggerFactory.getLogger(getClass());
 
@@ -280,17 +283,4 @@
                int newHeight = (int) (height * resizeFactor);
                return resizeBufferedImage(image, newWidth, newHeight, width, 
height);
        }
-
-       @Override
-       public BufferedImage makeAThumbnail(BufferedImage image,
-                       int newWidth, int newHeight) {
-               //resizeProportional
-               int width = image.getWidth();
-               int height = image.getHeight();
-               float propWidth = (float) newWidth / width;
-               float propHeight = (float) newHeight / height;
-               float factor = (propWidth > propHeight) ? propWidth : 
propHeight;
-               BufferedImage img = resizeRelativeProportional(image, factor);
-               return img;
-       }       
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/test/java/org/apache/clerezza/utils/imageprocessing/ImageProcessorTest.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/test/java/org/apache/clerezza/utils/imageprocessing/ImageProcessorTest.java?rev=891913&r1=891912&r2=891913&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/test/java/org/apache/clerezza/utils/imageprocessing/ImageProcessorTest.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.utils.imageprocessing/src/test/java/org/apache/clerezza/utils/imageprocessing/ImageProcessorTest.java
 Thu Dec 17 21:21:04 2009
@@ -86,12 +86,14 @@
        public void testMakeAThumbnail() throws IOException {
                BufferedImage tempImg = processor.makeAThumbnail(bimg, 50, 70);
                Assert.assertTrue(50 == tempImg.getWidth()||70 == 
tempImg.getHeight());
+               Assert.assertTrue(tempImg.getWidth() <= 50 && 
tempImg.getHeight() <= 70);
                bimg = ImageIO.read(new 
File(getClass().getResource("testimage1.jpg").getPath()));
                tempImg = processor.makeAThumbnail(bimg, 50, 70);
                Assert.assertTrue(50 == tempImg.getWidth()||70 == 
tempImg.getHeight());
+               Assert.assertTrue(tempImg.getWidth() <= 50 && 
tempImg.getHeight() <= 70);
                bimg = ImageIO.read(new 
File(getClass().getResource("testimage2.jpg").getPath()));
                tempImg = processor.makeAThumbnail(bimg, 50, 70);
                Assert.assertTrue(50 == tempImg.getWidth()||70 == 
tempImg.getHeight());
-               
+               Assert.assertTrue(tempImg.getWidth() <= 50 && 
tempImg.getHeight() <= 70);
        }
 }


Reply via email to