diff --git a/pom.xml b/pom.xml index ec551d3..ed6b48b 100644 --- a/pom.xml +++ b/pom.xml @@ -36,8 +36,14 @@ 1.2.17 1.7.5 1.0.1 - 2.10.0 - 8.0.0-M1 + 2.10.3 + 8.0.0-M3 + 2.2.3 + 1.1 + 2.8.0 + 1.2 + 1.9 + 2.4.0 @@ -86,37 +92,37 @@ net.sourceforge.jtransforms jtransforms - 2.4.0 + ${lib.jtransforms.version} commons-cli commons-cli - 1.2 + ${lib.commons-cli.version} commons-codec commons-codec - 1.9 + ${lib.commons-codec.version} javax.transaction jta - 1.1 + ${lib.jta.version} net.sf.ehcache ehcache - 2.8.0 + ${lib.ehcache.version} com.typesafe.akka akka-actor_2.10 - 2.1.1 + ${lib.akka.version} com.typesafe.akka akka-slf4j_2.10 - 2.1.1 + ${lib.akka.version} @@ -126,6 +132,7 @@ src/main/resources true + **/*.conf **/*.properties **/*.info @@ -134,6 +141,7 @@ src/main/resources false + **/*.conf **/*.properties **/*.info @@ -144,6 +152,7 @@ src/test/resources true + **/*.conf **/*.properties **/*.info @@ -152,6 +161,7 @@ src/test/resources false + **/*.conf **/*.properties **/*.info diff --git a/src/main/resources/application.conf b/src/main/resources/application.conf index abc24e6..d2fcb02 100644 --- a/src/main/resources/application.conf +++ b/src/main/resources/application.conf @@ -1,4 +1,62 @@ +//Default Properties File +//Image Tools version: ${project.version} +version = "${build-version}" + akka { - event-handlers = ["akka.event.slf4j.Slf4jEventHandler"] - loglevel = "DEBUG" + loggers = ["akka.event.slf4j.Slf4jLogger"] + loglevel = "INFO" +} + +//Default App Settings +app { + timed = false + log { + debug = false + info = false + error = true + } + engine { + //Concurrency Settings + concurrent { + similarity.limit = 15 + processing.limit = 15 + } + } +} + +#Default Image Settings +image { + //images must be 90% similar + differenceThreshold = 0.90 + //control generation of hashes for new images. + hash { + precision=64 + } + ahash { + use = true + weight = 0.70 + precision = 8 + tolerence = 8 + } + dhash { + use = true + weight = 0.85 + precision = 8 + tolerence = 8 + } + phash { + //set to false if hashing images is taking too long + use = true + weight = 1.0 + precision = 32 + tolerence = 8 + } +} + +//Default Thumbnail Settings +thumbnail { + //Directory where to store thumbnails + directory = ".cache/thumbnails/" + //Size of the thumbnail to generate and store + size = 128 } \ No newline at end of file diff --git a/src/test/resources/application.conf b/src/test/resources/application.conf index abc24e6..6fab465 100644 --- a/src/test/resources/application.conf +++ b/src/test/resources/application.conf @@ -1,4 +1,63 @@ -akka { - event-handlers = ["akka.event.slf4j.Slf4jEventHandler"] - loglevel = "DEBUG" +//Default Properties File +//Image Tools version: ${project.version} +version = "${build-version}" + + +akka { + loggers = ["akka.event.slf4j.Slf4jLogger"] + loglevel = "DEBUG" +} + +//Default App Settings +app { + timed = false + log { + debug = true + info = true + error = true + } + engine { + //Concurrency Settings + concurrent { + similarity.limit = 15 + processing.limit = 15 + } + } +} + +#Default Image Settings +image { + //images must be 90% similar + differenceThreshold = 0.90 + //control generation of hashes for new images. + hash { + precision=64 + } + ahash { + use = true + weight = 0.70 + precision = 8 + tolerence = 8 + } + dhash { + use = true + weight = 0.85 + precision = 8 + tolerence = 8 + } + phash { + //set to false if hashing images is taking too long + use = true + weight = 1.0 + precision = 32 + tolerence = 8 + } +} + +//Default Thumbnail Settings +thumbnail { + //Directory where to store thumbnails + directory = ".cache/thumbnails/" + //Size of the thumbnail to generate and store + size = 128 } \ No newline at end of file diff --git a/todo b/todo new file mode 100644 index 0000000..c5f252e --- /dev/null +++ b/todo @@ -0,0 +1,18 @@ +Move over to Logback for the backend + -Convert the configuration file + -Convert the AppConfig to configure basic logging +Profile and improve performance for the ConcurrentEngine when looking for similarities. + -SynchronousEngine is about 2.5x faster currently for finding similarities + -ConcurrentEngine actors for finding similarities are not CPU constrained and need to be +Convert app configuration format from a java properties to a typesafehub:config + -Rewrite properties in new format (JSON) + -Rewrite PropertiesLoader to use the new format +Add functionality to both engines + -Recursive directory scanning + -Determine how to handle similarites there... All images or just per folder + -Move files to new locations + -Rename new files based on their MD5 +Add functionality to ImageService + -Cache thumbnails + -Generate thumbnails + -Move caching of images into the ImageService \ No newline at end of file