diff --git a/pom.xml b/pom.xml
index cb261d8..6d137c4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,6 +75,11 @@
scala-library
${lib.scala-library.version}
+
+ net.coobird
+ thumbnailator
+ [0.4, 0.5)
+
diff --git a/src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala b/src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala
index b62dc14..e66ca48 100644
--- a/src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala
+++ b/src/main/scala/com/sothr/imagetools/dto/ImageHashDTO.scala
@@ -6,4 +6,9 @@ class ImageHashDTO(val ahash:Long, val dhash:Long, val phash:Long) {
def getDhash():Long = this.dhash
def getPhash():Long = this.phash
+ override def toString():String = {
+ return s"""ahash: $ahash
+ dhash: $dhash
+ phash: $phash""".stripMargin
+ }
}
diff --git a/src/main/scala/com/sothr/imagetools/hash/HashService.scala b/src/main/scala/com/sothr/imagetools/hash/HashService.scala
index c31221f..7f6955a 100644
--- a/src/main/scala/com/sothr/imagetools/hash/HashService.scala
+++ b/src/main/scala/com/sothr/imagetools/hash/HashService.scala
@@ -1,12 +1,20 @@
package com.sothr.imagetools.hash
+import grizzled.slf4j.Logging
import com.sothr.imagetools.dto.ImageHashDTO
-import com.sothr.imagetools.image.Image
import com.sothr.imagetools.util.{PropertiesEnum, PropertiesService}
-object HashService {
+/**
+ * A service that exposes the ability to construct perceptive hashes from an
+ * image which can be used to find a perceptual difference between two or more
+ * images
+ */
+object HashService extends Logging {
- def getImageHashes(image:Image):ImageHashDTO = {
+ def getImageHashes(imagePath:String):ImageHashDTO = {
+
+ debug(s"Creating hashes for $imagePath")
+
var ahash:Long = 0L
var dhash:Long = 0L
var phash:Long = 0L
@@ -23,7 +31,11 @@ object HashService {
if (PropertiesService.get(PropertiesEnum.UseAhash.toString) == "true") {
phash = getPhash(imageData)
}
- return new ImageHashDTO(ahash, dhash, phash)
+
+ val hashes = new ImageHashDTO(ahash, dhash, phash)
+ debug(s"Generated hashes: $hashes")
+
+ return hashes
}
def getAhash(imageData:Array[Array[Int]]):Long = {
diff --git a/src/main/scala/com/sothr/imagetools/image/ImageService.scala b/src/main/scala/com/sothr/imagetools/image/ImageService.scala
new file mode 100644
index 0000000..0648dda
--- /dev/null
+++ b/src/main/scala/com/sothr/imagetools/image/ImageService.scala
@@ -0,0 +1,14 @@
+package com.sothr.imagetools
+
+import grizzled.slf4j.Logging
+
+object ImageService extends Logging {
+
+ /**
+ * Get the raw data for an image
+ */
+ def getImageData(path:String):Array[Array[Int]] = {
+ return null
+ }
+
+}
\ No newline at end of file