[kune-commits] r910 - in trunk: .
src/main/java/org/ourproject/kune/platf/client/ui/download
src/main/java/org/ourproject/kune/platf/server/manager/impl
src/main/java/org/ourproject/kune/platf/server/properties
src/main/resources
src/test/java/org/ourproject/kune/platf/server/manager/impl
vjrj
vjrj at ourproject.org
Wed Oct 15 05:14:34 CEST 2008
Author: vjrj
Date: 2008-10-15 05:14:33 +0200 (Wed, 15 Oct 2008)
New Revision: 910
Added:
trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java
Modified:
trunk/INSTALL
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java
trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefault.java
trunk/src/main/java/org/ourproject/kune/platf/server/properties/KuneProperties.java
trunk/src/main/resources/kune.properties
trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefaultTest.java
Log:
Complete - task Images server utilities
Modified: trunk/INSTALL
===================================================================
--- trunk/INSTALL 2008-10-14 13:39:30 UTC (rev 909)
+++ trunk/INSTALL 2008-10-15 03:14:33 UTC (rev 910)
@@ -57,6 +57,13 @@
- Install and run a openfire jabber server (see Appendix B for proper configuration of openfire) or ejabberd.
+- Install jmagick-jni. In debian: apt-get install libjmagick6-jni (version 6.2.6-0) also you need or:
+ sudo ln -s /usr/lib/jni/libJMagick.so /usr/lib/libJMagick.so
+or
+ set LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/jni in your test and in your webserver.
+
+in Windows maybe (not checked) you need to do something similar (copy the jmagick .dll of the same version in the Windows directory)
+
- Run jetty:
mvn jetty:run -Dliquibase.should.run=false
once started (and initialized the db), you can stop a run jetty with de db migrator to insert initial data and migrate:
Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java 2008-10-14 13:39:30 UTC (rev 909)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/download/FileConstants.java 2008-10-15 03:14:33 UTC (rev 910)
@@ -0,0 +1,7 @@
+package org.ourproject.kune.platf.client.ui.download;
+
+public interface FileConstants {
+ final String ICON_SUFFIX = ".ico.";
+ final String SIZED_SUFFIX = ".sized.";
+ final String THUMB_SUFFIX = ".thumb.";
+}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java 2008-10-14 13:39:30 UTC (rev 909)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/FileUploadManager.java 2008-10-15 03:14:33 UTC (rev 910)
@@ -12,6 +12,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import magick.MagickException;
import net.sf.json.JSONObject;
import org.apache.commons.fileupload.FileItem;
@@ -23,6 +24,7 @@
import org.ourproject.kune.docs.server.DocumentServerTool;
import org.ourproject.kune.platf.client.dto.StateToken;
import org.ourproject.kune.platf.client.services.I18nTranslationService;
+import org.ourproject.kune.platf.client.ui.download.FileConstants;
import org.ourproject.kune.platf.client.ui.upload.FileUploader;
import org.ourproject.kune.platf.server.UserSession;
import org.ourproject.kune.platf.server.access.AccessRol;
@@ -47,12 +49,12 @@
@RequestScoped
public class FileUploadManager extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
public static final Log log = LogFactory.getLog(FileUploadManager.class);
private static final String UTF8 = "UTF-8";
- private static final long serialVersionUID = 1L;
-
@Inject
KuneProperties kuneProperties;
@Inject
@@ -69,126 +71,158 @@
@Override
@SuppressWarnings( { "unchecked", "deprecation" })
protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException,
- IOException {
+ IOException {
- JSONObject jsonResponse = createSuccessResponse();
+ JSONObject jsonResponse = createSuccessResponse();
- final DiskFileItemFactory factory = new DiskFileItemFactory();
- // maximum size that will be stored in memory
- factory.setSizeThreshold(4096);
- // the location for saving data that is larger than getSizeThreshold()
- factory.setRepository(new File("/tmp"));
+ final DiskFileItemFactory factory = new DiskFileItemFactory();
+ // maximum size that will be stored in memory
+ factory.setSizeThreshold(4096);
+ // the location for saving data that is larger than getSizeThreshold()
+ factory.setRepository(new File("/tmp"));
- if (!ServletFileUpload.isMultipartContent(req)) {
- log.warn("Not a multipart upload");
- }
+ if (!ServletFileUpload.isMultipartContent(req)) {
+ log.warn("Not a multipart upload");
+ }
- final ServletFileUpload upload = new ServletFileUpload(factory);
- // maximum size before a FileUploadException will be thrown
- upload.setSizeMax(new Integer(kuneProperties.get(KuneProperties.UPLOAD_MAX_FILE_SIZE)) * 1024 * 1024);
+ final ServletFileUpload upload = new ServletFileUpload(factory);
+ // maximum size before a FileUploadException will be thrown
+ upload.setSizeMax(new Integer(kuneProperties.get(KuneProperties.UPLOAD_MAX_FILE_SIZE)) * 1024 * 1024);
- try {
- final List fileItems = upload.parseRequest(req);
- String userHash = null;
- StateToken stateToken = null;
- String fileName = null;
- FileItem file = null;
- for (final Iterator iterator = fileItems.iterator(); iterator.hasNext();) {
- final FileItem item = (FileItem) iterator.next();
- if (item.isFormField()) {
- final String name = item.getFieldName();
- final String value = item.getString();
- log.info("name: " + name + " value: " + value);
- if (name.equals(FileUploader.USERHASH)) {
- userHash = value;
- }
- if (name.equals(FileUploader.CURRENT_STATE_TOKEN)) {
- stateToken = new StateToken(value);
- }
- } else {
- fileName = item.getName();
- log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize());
- file = item;
- }
- }
- createUploadedFile(userHash, stateToken, fileName, file);
- } catch (final FileUploadException e) {
- jsonResponse = createJsonResponse(false, i18n.t("Error: File too large"));
- } catch (final Exception e) {
- jsonResponse = createJsonResponse(false, i18n.t("Error uploading file"));
- log.info("Exception: " + e.getCause());
- e.printStackTrace();
- }
+ try {
+ final List fileItems = upload.parseRequest(req);
+ String userHash = null;
+ StateToken stateToken = null;
+ String fileName = null;
+ FileItem file = null;
+ for (final Iterator iterator = fileItems.iterator(); iterator.hasNext();) {
+ final FileItem item = (FileItem) iterator.next();
+ if (item.isFormField()) {
+ final String name = item.getFieldName();
+ final String value = item.getString();
+ log.info("name: " + name + " value: " + value);
+ if (name.equals(FileUploader.USERHASH)) {
+ userHash = value;
+ }
+ if (name.equals(FileUploader.CURRENT_STATE_TOKEN)) {
+ stateToken = new StateToken(value);
+ }
+ } else {
+ fileName = item.getName();
+ log.info("file: " + fileName + " fieldName: " + item.getFieldName() + " size: " + item.getSize());
+ file = item;
+ }
+ }
+ createUploadedFile(userHash, stateToken, fileName, file);
+ } catch (final FileUploadException e) {
+ jsonResponse = createJsonResponse(false, i18n.t("Error: File too large"));
+ } catch (final Exception e) {
+ jsonResponse = createJsonResponse(false, i18n.t("Error uploading file"));
+ log.info("Exception: " + e.getCause());
+ e.printStackTrace();
+ }
- final Writer w = new OutputStreamWriter(resp.getOutputStream());
- w.write(jsonResponse.toString());
- w.close();
- resp.setStatus(HttpServletResponse.SC_OK);
+ final Writer w = new OutputStreamWriter(resp.getOutputStream());
+ w.write(jsonResponse.toString());
+ w.close();
+ resp.setStatus(HttpServletResponse.SC_OK);
}
@Authenticated
@Authorizated(accessRolRequired = AccessRol.Editor, actionLevel = ActionLevel.container)
@Transactional(type = TransactionType.READ_WRITE)
Content createUploadedFile(final String userHash, final StateToken stateToken, final String fileName,
- final FileItem fileUploadItem) throws Exception {
- final String relDir = FileUtils.toDir(stateToken);
- final String absDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + relDir;
- fileManager.mkdir(absDir);
+ final FileItem fileUploadItem) throws Exception {
+ final String relDir = FileUtils.toDir(stateToken);
+ final String absDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + relDir;
+ fileManager.mkdir(absDir);
- File file = null;
- try {
- final String filenameUTF8 = new String(fileName.getBytes(), UTF8);
- file = fileManager.createFileWithSequentialName(absDir, filenameUTF8);
- fileUploadItem.write(file);
+ File file = null;
+ try {
+ final String filenameUTF8 = new String(fileName.getBytes(), UTF8);
+ file = fileManager.createFileWithSequentialName(absDir, filenameUTF8);
+ fileUploadItem.write(file);
- final String mimetype = fileUploadItem.getContentType();
- final String extension = FileUtils.getFileNameExtension(filenameUTF8, false);
+ final String mimetype = fileUploadItem.getContentType();
+ BasicMimeType basicMimeType = new BasicMimeType(mimetype);
+ log.info("Mimetype: " + basicMimeType);
+ final String extension = FileUtils.getFileNameExtension(file.getName(), false);
- // Persist
- final User user = userSession.getUser();
- final Container container = accessService.accessToContainer(ContentUtils.parseId(stateToken.getFolder()),
- user, AccessRol.Editor);
- final String preview = "Preview of this file (in development)";
- final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(),
- extension), preview, user, container);
- content.setTypeId(DocumentServerTool.TYPE_UPLOADEDFILE);
- content.setMimeType(new BasicMimeType(mimetype));
- content.setFilename(filenameUTF8);
- return content;
- } catch (final Exception e) {
- if (file != null && file.exists()) {
- file.delete();
- }
- throw e;
- }
+ if (basicMimeType.getType().equals("image")) {
+ generateThumbs(absDir, file.getName(), extension);
+ }
+
+ // Persist
+ final User user = userSession.getUser();
+ final Container container = accessService.accessToContainer(ContentUtils.parseId(stateToken.getFolder()),
+ user, AccessRol.Editor);
+ final String preview = "Preview of this file (in development)";
+ final Content content = contentManager.createContent(FileUtils.getFileNameWithoutExtension(file.getName(),
+ extension), preview, user, container);
+ content.setTypeId(DocumentServerTool.TYPE_UPLOADEDFILE);
+ content.setMimeType(basicMimeType);
+ content.setFilename(file.getName());
+ return content;
+ } catch (final Exception e) {
+ if (file != null && file.exists()) {
+ file.delete();
+ }
+ throw e;
+ }
}
private JSONObject createJsonResponse(final boolean success, final String message) {
- /**
- *
- * http://max-bazhenov.com/dev/upload-dialog-2.0/index.php
- *
- * Server side handler.
- *
- * The files in the queue are posted one at a time, the file field name
- * is 'file'. The handler should return json encoded object with
- * following properties: { success: true|false, // required error:
- * 'Error or success message' // optional, also can be named 'message' }
- */
+ /**
+ *
+ * http://max-bazhenov.com/dev/upload-dialog-2.0/index.php
+ *
+ * Server side handler.
+ *
+ * The files in the queue are posted one at a time, the file field name
+ * is 'file'. The handler should return json encoded object with
+ * following properties: { success: true|false, // required error:
+ * 'Error or success message' // optional, also can be named 'message' }
+ */
- JSONObject response = null;
- try {
- response = new JSONObject();
- response.put("success", success);
- response.put("error", message);
- response.put("code", "232");
- } catch (final Exception e) {
- log.error("Error building response");
- }
- return response;
+ JSONObject response = null;
+ try {
+ response = new JSONObject();
+ response.put("success", success);
+ response.put("error", message);
+ response.put("code", "232");
+ } catch (final Exception e) {
+ log.error("Error building response");
+ }
+ return response;
}
private JSONObject createSuccessResponse() {
- return createJsonResponse(true, i18n.t("Success uploading"));
+ return createJsonResponse(true, i18n.t("Success uploading"));
}
+
+ private void generateThumbs(String absDir, String filename, String extension) {
+ try {
+ String fileOrig = absDir + filename;
+ String withoutExtension = FileUtils.getFileNameWithoutExtension(filename, extension);
+
+ String resizeName = absDir + withoutExtension + FileConstants.SIZED_SUFFIX + extension;
+ String thumbName = absDir + withoutExtension + FileConstants.THUMB_SUFFIX + extension;
+ String iconName = absDir + withoutExtension + FileConstants.ICON_SUFFIX + extension;
+
+ int resizeWidth = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_RESIZEWIDTH));
+ int thumbSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_THUMBSIZE));
+ int cropSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_CROPSIZE));
+ int iconSize = Integer.parseInt(kuneProperties.get(KuneProperties.IMAGES_ICONSIZE));
+
+ ImageUtilsDefault.scaleImageToMax(fileOrig, resizeName, resizeWidth);
+ ImageUtilsDefault.createThumb(fileOrig, thumbName, thumbSize, cropSize);
+ ImageUtilsDefault.createThumb(fileOrig, iconName, iconSize);
+
+ } catch (NumberFormatException e) {
+ log.error("Image sizes in kune.properties are not integers");
+ e.printStackTrace();
+ } catch (MagickException e) {
+ log.info("Problem generating image thumb for " + filename);
+ }
+ }
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefault.java 2008-10-14 13:39:30 UTC (rev 909)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefault.java 2008-10-15 03:14:33 UTC (rev 910)
@@ -11,7 +11,12 @@
/**
* http://en.wikipedia.org/wiki/Thumbnail
+ *
*/
+ public static void createThumb(String fileOrig, String fileDest, int cropDimension) throws MagickException {
+ createThumb(fileOrig, fileDest, cropDimension, cropDimension);
+ }
+
public static void createThumb(String fileOrig, String fileDest, int thumbDimension, int cropDimension)
throws MagickException {
if (thumbDimension < cropDimension) {
@@ -21,10 +26,10 @@
Dimension origDimension = imageOrig.getDimension();
int origHeight = origDimension.height;
int origWidth = origDimension.width;
- Dimension proportionalDim = calculateProportionalDim(origWidth, origHeight, thumbDimension);
+ Dimension proportionalDim = calculatePropDim(origWidth, origHeight, thumbDimension, true);
+ MagickImage scaled = scaleImage(imageOrig, proportionalDim.width, proportionalDim.height);
int x = calculateCenteredCoordinate(proportionalDim.width, cropDimension);
int y = calculateCenteredCoordinate(proportionalDim.height, cropDimension);
- MagickImage scaled = scaleImage(imageOrig, proportionalDim.width, proportionalDim.height);
cropImage(scaled, fileDest, x, y, cropDimension, cropDimension);
}
@@ -53,15 +58,32 @@
return scaleImage(imageOrig, fileDest, width, height);
}
+ public static boolean scaleImageToMax(String fileOrig, String fileDest, int maxSize) throws MagickException {
+ MagickImage imageOrig = createImage(fileOrig);
+ Dimension origDimension = imageOrig.getDimension();
+ int origHeight = origDimension.height;
+ int origWidth = origDimension.width;
+ Dimension proportionalDim = calculatePropDim(origWidth, origHeight, maxSize, false);
+ MagickImage scaled = scaleImage(imageOrig, proportionalDim.width, proportionalDim.height);
+
+ return writeImage(scaled, fileDest);
+ }
+
static int calculateCenteredCoordinate(int size, int crop) {
int i = (size - crop) / 2;
return i < 0 ? 0 : i;
}
- static Dimension calculateProportionalDim(int origWidth, int origHeight, int maxSize) {
+ static Dimension calculatePropDim(int origWidth, int origHeight, int maxSize) {
+ return calculatePropDim(origWidth, origHeight, maxSize, true);
+ }
+
+ static Dimension calculatePropDim(int origWidth, int origHeight, int maxSize, boolean toShortest) {
boolean higher = origHeight > origWidth;
- double height = higher ? (origHeight * maxSize / origWidth) : maxSize;
- double width = !higher ? (origWidth * maxSize / origHeight) : maxSize;
+ int propHeight = origHeight * maxSize / origWidth;
+ int propWidth = origWidth * maxSize / origHeight;
+ double height = toShortest ? (higher ? propHeight : maxSize) : (higher ? maxSize : propHeight);
+ double width = toShortest ? (!higher ? propWidth : maxSize) : (!higher ? maxSize : propWidth);
if ((higher && origHeight <= maxSize) || (!higher && origWidth <= maxSize)) {
return new Dimension(origWidth, origHeight);
}
Modified: trunk/src/main/java/org/ourproject/kune/platf/server/properties/KuneProperties.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/server/properties/KuneProperties.java 2008-10-14 13:39:30 UTC (rev 909)
+++ trunk/src/main/java/org/ourproject/kune/platf/server/properties/KuneProperties.java 2008-10-15 03:14:33 UTC (rev 910)
@@ -32,6 +32,10 @@
public String UPLOAD_GALLERY_PERMITTED_EXTS = "kune.upload.gallerypermittedextensions";
public String UPLOAD_MAX_FILE_SIZE = "kune.upload.maxfilesizeinmegas";
public String UPLOAD_LOCATION = "kune.upload.location";
+ public String IMAGES_RESIZEWIDTH = "kune.images.resizewidth";
+ public String IMAGES_THUMBSIZE = "kune.images.thumbsize";
+ public String IMAGES_CROPSIZE = "kune.images.cropsize";
+ public String IMAGES_ICONSIZE = "kune.images.iconsize";
public String get(String key);
Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties 2008-10-14 13:39:30 UTC (rev 909)
+++ trunk/src/main/resources/kune.properties 2008-10-15 03:14:33 UTC (rev 910)
@@ -25,5 +25,13 @@
kune.sitelogourl = images/kune-logo-16px.png
kune.upload.location = /var/lib/kune/uploads/
+
+# Gallery options
kune.upload.gallerypermittedextensions = jpg,jpeg,png,gif,bmp,svg,avi,mpg,mpeg,ogg,mov,tif,tiff,mp3,wav
kune.upload.maxfilesizeinmegas = 10
+# Images are resized to thumbsize pixels and later cropped (centered) to cropsize
+kune.images.resizewidth = 400
+kune.images.thumbsize = 100
+kune.images.cropsize = 85
+
+kune.images.iconsize = 16
Modified: trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefaultTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefaultTest.java 2008-10-14 13:39:30 UTC (rev 909)
+++ trunk/src/test/java/org/ourproject/kune/platf/server/manager/impl/ImageUtilsDefaultTest.java 2008-10-15 03:14:33 UTC (rev 910)
@@ -13,9 +13,14 @@
import org.junit.Test;
/**
- * UnsatisfiedLinkError: problem with jmagick installation (in debian, apt-get
- * install libjmagick6-jni, and add LD_LIBRARY_PATH=/usr/lib/jni/ to this test
- * environment params
+ * If you get a UnsatisfiedLinkError this is a problem with jmagick installation
+ * (in debian, apt-get install libjmagick6-jni, and add
+ * LD_LIBRARY_PATH=/usr/lib/jni/ to this test environment params or sudo ln -s
+ * /usr/lib/jni/libJMagick.so /usr/lib/libJMagick.so)
+ *
+ * See the output of:
+ * System.out.println(System.getProperty("java.library.path")); to see when is
+ * expecting the .so/.dll
*/
public class ImageUtilsDefaultTest {
@@ -56,7 +61,7 @@
@Test
public void testProportionalHigher() {
- Dimension proportionalDim = ImageUtilsDefault.calculateProportionalDim(500, 1000, 100);
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(500, 1000, 100);
assertEquals(100, proportionalDim.width);
assertEquals(200, proportionalDim.height);
assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100));
@@ -65,7 +70,7 @@
@Test
public void testProportionalHigherLikeSamples() {
- Dimension proportionalDim = ImageUtilsDefault.calculateProportionalDim(1200, 1600, 100);
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(1200, 1600, 100);
assertEquals(100, proportionalDim.width);
assertEquals(133, proportionalDim.height);
assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100));
@@ -74,7 +79,7 @@
@Test
public void testProportionalHigherSame() {
- Dimension proportionalDim = ImageUtilsDefault.calculateProportionalDim(20, 100, 100);
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(20, 100, 100);
assertEquals(20, proportionalDim.width);
assertEquals(100, proportionalDim.height);
assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100));
@@ -83,7 +88,7 @@
@Test
public void testProportionalHigherSmaller() {
- Dimension proportionalDim = ImageUtilsDefault.calculateProportionalDim(20, 10, 100);
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(20, 10, 100);
assertEquals(20, proportionalDim.width);
assertEquals(10, proportionalDim.height);
assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100));
@@ -91,8 +96,36 @@
}
@Test
+ public void testProportionalToBiggerNormal() {
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 300, false);
+ assertEquals(300, proportionalDim.width);
+ assertEquals(150, proportionalDim.height);
+ }
+
+ @Test
+ public void testProportionalToBiggerSame() {
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 600, false);
+ assertEquals(600, proportionalDim.width);
+ assertEquals(300, proportionalDim.height);
+ }
+
+ @Test
+ public void testProportionalToBiggerSmaller() {
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(600, 300, 700, false);
+ assertEquals(600, proportionalDim.width);
+ assertEquals(300, proportionalDim.height);
+ }
+
+ @Test
+ public void testProportionalToBiggerWider() {
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(300, 600, 200, false);
+ assertEquals(100, proportionalDim.width);
+ assertEquals(200, proportionalDim.height);
+ }
+
+ @Test
public void testProportionalWider() {
- Dimension proportionalDim = ImageUtilsDefault.calculateProportionalDim(1000, 500, 100);
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(1000, 500, 100);
assertEquals(200, proportionalDim.width);
assertEquals(100, proportionalDim.height);
assertEquals(50, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100));
@@ -101,7 +134,7 @@
@Test
public void testProportionalWiderSame() {
- Dimension proportionalDim = ImageUtilsDefault.calculateProportionalDim(100, 20, 100);
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(100, 20, 100);
assertEquals(100, proportionalDim.width);
assertEquals(20, proportionalDim.height);
assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100));
@@ -110,7 +143,7 @@
@Test
public void testProportionalWiderSmaller() {
- Dimension proportionalDim = ImageUtilsDefault.calculateProportionalDim(5, 10, 100);
+ Dimension proportionalDim = ImageUtilsDefault.calculatePropDim(5, 10, 100);
assertEquals(5, proportionalDim.width);
assertEquals(10, proportionalDim.height);
assertEquals(0, ImageUtilsDefault.calculateCenteredCoordinate(proportionalDim.width, 100));
More information about the kune-commits
mailing list