blockhash alternatives and similar packages
Based on the "Web" category.
Alternatively, view blockhash alternatives based on common mentions on social networks and blogs.
-
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
servant
Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more! -
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
ghcjs-dom
Make Document Object Model (DOM) apps that run in any browser and natively using WebKitGtk -
ghcjs-base
base library for GHCJS for JavaScript interaction and marshalling, used by higher level libraries like JSC
InfluxDB - Power Real-Time Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of blockhash or a related project?
README
blockhash
This is a perceptual image hash calculation tool based on algorithm described in Block Mean Value Based Image Perceptual Hashing by Bian Yang, Fan Gu and Xiamu Niu. Visit the website for further information.
Program
Usage: blockhash [-q|--quick] [-b|--bits ARG] filenames
blockhash
Available options:
-h,--help Show this help text
-q,--quick Use quick hashing method
-b,--bits ARG Create hash of size N^2 bits.
Library
The example code below uses JuicyPixels to load images and prints the hash to stdout.
import qualified Codec.Picture as P
import Data.Blockhash
import qualified Data.Vector.Generic as VG
import qualified Data.Vector.Unboxed as V
printHash :: FilePath -> IO ()
printHash filename = do
res <- P.readImage filename
case res of
Left err -> putStrLn ("Fail to read: " ++ filename)
Right dynamicImage -> do
let rgbaImage = P.convertRGBA8 dynamicImage
pixels = VG.convert (P.imageData rgbaImage)
image = Image { imagePixels = pixels
, imageWidth = P.imageWidth rgbaImage
, imageHeight = P.imageHeight rgbaImage }
hash = blockhash image 16 Precise
putStrLn (show hash)