Iccarus is a native Go library for parsing ICC Color Profiles
- Direct parsing of ICC profile files (v2 & v4) with no external dependencies
- Flexible parsing
- Full, Header only or Header & Tag Table
- Lazy decoding of tags
- Extensible tag decoders
- Extract (parse) ICC profiles from images (
.jpeg
,.png
,.tif
&.webp
) - Color space conversions (experimental)
go get github.com/go-andiamo/iccarus
package main
import (
"fmt"
"github.com/go-andiamo/iccarus"
"log"
"os"
)
func main() {
f, err := os.Open("path/to/profile.icc")
if err != nil {
log.Fatal(err)
}
defer f.Close()
profile, err := iccarus.ParseProfile(f, nil)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Color space: %s\n", profile.Header.ColorSpace)
fmt.Printf(" Version: %s\n", profile.Header.Version)
if cprt, err := profile.TagValue(iccarus.TagHeaderCopyright); err == nil {
fmt.Printf(" Copyright: %s\n", cprt)
}
}