jpegxl

package module
v0.4.3 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2024 License: MIT Imports: 19 Imported by: 5

README

jpegxl

Status Go Reference

Go encoder/decoder for JPEG XL Image File Format with support for animated JXL images (decode only).

Based on libjxl compiled to WASM and used with wazero runtime (CGo-free).

The library will first try to use a dynamic/shared library (if installed) via purego and will fall back to WASM.

Build tags

  • nodynamic - do not use dynamic/shared library (use only WASM)

Documentation

Overview

Package jpegxl implements an JPEG XL image decoder based on libjxl compiled to WASM.

Index

Constants

View Source
const DefaultEffort = 7

DefaultEffort is the default effort encoding parameter.

View Source
const DefaultQuality = 75

DefaultQuality is the default quality encoding parameter.

Variables

View Source
var (
	ErrMemRead  = errors.New("jpegxl: mem read failed")
	ErrMemWrite = errors.New("jpegxl: mem write failed")
	ErrDecode   = errors.New("jpegxl: decode failed")
	ErrEncode   = errors.New("jpegxl: encode failed")
)

Errors .

Functions

func Decode

func Decode(r io.Reader) (image.Image, error)

Decode reads a JPEG XL image from r and returns it as an image.Image.

func DecodeConfig

func DecodeConfig(r io.Reader) (image.Config, error)

DecodeConfig returns the color model and dimensions of a JPEG XL image without decoding the entire image.

func Dynamic added in v0.2.1

func Dynamic() error

Dynamic returns error (if there was any) during opening dynamic/shared library.

func Encode added in v0.2.4

func Encode(w io.Writer, m image.Image, o ...Options) error

Encode writes the image m to w with the given options.

func InitDecoder added in v0.4.1

func InitDecoder()

InitDecoder initializes wazero runtime and compiles the module. This function does nothing if a dynamic/shared library is used and Dynamic() returns nil. There is no need to explicitly call this function, first Decode will initialize the runtime.

func InitEncoder added in v0.4.1

func InitEncoder()

InitEncoder initializes wazero runtime and compiles the module. This function does nothing if a dynamic/shared library is used and Dynamic() returns nil. There is no need to explicitly call this function, first Encode will initialize the runtime.

Types

type JXL added in v0.1.4

type JXL struct {
	// Decoded images, NRGBA or NRGBA64.
	Image []image.Image
	// Delay times, one per frame, in seconds of a tick.
	Delay []int
}

JXL represents the possibly multiple images stored in a JXL file.

func DecodeAll added in v0.1.3

func DecodeAll(r io.Reader) (*JXL, error)

DecodeAll reads a JPEG XL image from r and returns the sequential frames and timing information.

type Options added in v0.2.4

type Options struct {
	// Quality in the range [0,100]. Quality of 100 enables lossless. Default is 75.
	Quality int
	// Effort in the range [1,10]. Sets encoder effort/speed level without affecting decoding speed. Default is 7.
	Effort int
}

Options are the encoding parameters.

Jump to

Keyboard shortcuts

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