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