BlurHashGo

module
v0.0.0-...-9115d3a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2024 License: MIT

README

BlurHashGo

BlurHashGo is a Go implementation of the BlurHash algorithm, which allows you to create compact representations of images that can be used as placeholders with a low-res preview. Blurhash is originally created by Wolt folks.

Reference:

Overview

BlurHash is a clever algorithm that encodes the average color of each 8x8 pixel block of an image into a short string. This string can then be used as a placeholder for the image, providing a blurry version of it before the actual image is loaded.

This Go implementation, BlurHashGo, allows you to easily encode and decode BlurHash strings in your Go applications.

Features
  • Encoding: Convert an image into a BlurHash string.
  • Decoding: Decode a BlurHash string into representative image.

Getting Started BlurHash Package

Installation
go get -u github.com/ancuongnguyen07/BlurHashGo
Usage
import (
    "fmt"
    "image"
    "os"

    "github.com/ancuongnguyen07/BlurHashGo"
)

func main() {
    // Load an image
    imgFile, err := os.Open("example.jpg")
    if err != nil {
        fmt.Println("Error opening image:", err)
        return
    }
    defer imgFile.Close()

    img, _, err := image.Decode(imgFile)
    if err != nil {
        fmt.Println("Error decoding image:", err)
        return
    }

    // Encode the image to BlurHash
    hash, err := BlurHashGo.Encode(img, 4, 3)
    if err != nil {
        fmt.Println("Error encoding image:", err)
        return
    }

    // Print the BlurHash string
    fmt.Println("BlurHash:", hash)
}

For more detailed documentation, refer to Godoc

Getting Started BlurHash CLI

Installation

You can build locally by running the following commands:

git clone https://github.com/ancuongnguyen07/BlurHashGo
cd BlurHashGo
make -C cli
cli/build/blurhash-cli # run the executable binary file

The executable file blurhash-cli should be available in the folder build.

Or using a more convenient way:

go install github.com/ancuongnguyen07/BlurHashGo/cli/blurhash-cli
Usage

The CLI tool provides subcommands for encoding and decoding BlurHash strings.

Encode

The encode subcommand allows you to encode an image to a BlurHash string. Example:

blurhash-cli encode --file example.jpg --xcomp 4 --ycomp 3

This command encodes the image located in the file "example.jpg" using a grid of 4x3 components.

Decode

The decode subcommnd allows you to decode a BlurHash string into an image. Example:

blurhash-cli decode --hash LKO2?U%2Tw=w]~RBVZRi};RPxuwH --width 400 --height 800 --punch 1 --dest ./result.png

This command decodes the BlurHash string LKO2?U%2Tw=w]~RBVZRi};RPxuwH and saves the resulting result.png image.

Help

To show the help menu of blurhash-cli, run:

$ blurhash-cli --help
Blurhash command line tool

Usage:
  blurhash [flags]
  blurhash [command]

Examples:

        blurhash encode --filepath ./smile.png --xcomponent 4 --ycomponent 3


Available Commands:
  completion  Generate the autocompletion script for the specified shell
  decode      Decode an image from local file or downloaded url
  encode      Encode an image from local file or downloaded url
  help        Help about any command

Flags:
  -h, --help      help for blurhash
  -v, --version   version for blurhash

Use "blurhash [command] --help" for more information about a command.
License

This project is licensed under the MIT Licence -- see the LICENCE file for details.

Directories

Path Synopsis
cli
cmd
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL