Help us shape the future of Go! Take the 2026 Go Developer Survey

coloricc

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package coloricc 提供基于 ICC 色彩配置文件的设备颜色到 sRGB 的转换。 使用纯 Go 的 github.com/kovidgoyal/imaging/prism/meta/icc 引擎,不依赖 cgo。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeviceCMYK8ToRGB added in v0.1.4

func DeviceCMYK8ToRGB(c, m, y, k uint8) (uint8, uint8, uint8)

DeviceCMYK8ToRGB 把 8 位 CMYK 油墨量转换为 8 位 RGB。

func DeviceCMYKToRGB

func DeviceCMYKToRGB(c, m, y, k float64) (float64, float64, float64)

DeviceCMYKToRGB 用 Adobe/poppler 的 4 色印刷矩阵模型把 CMYK 油墨量(0-1) 转换为 sRGB 分量(0-1)。当没有可用的 ICC 配置文件时,internal/pdf2ofd 与 internal/render 都回退到该模型,保证同一 CMYK 颜色在两条路径上一致。

纯色结果与印刷色一致:纯青 (0,173,239)、纯品红 (236,0,140)、纯黄 (255,242,0)、 纯黑 (35,31,32)。相比逐油墨独立吸收的近似模型,混合色(尤其青 + 黄得到的绿) 更接近 poppler/Adobe 的渲染结果。

Types

type CMYK8Converter added in v0.1.4

type CMYK8Converter struct {
	// contains filtered or unexported fields
}

CMYK8Converter 是可复用的 8 位 CMYK 转 RGB 转换器。 创建后直接使用已初始化的查找表,适合整张图像的像素循环。

func NewCMYK8Converter added in v0.1.4

func NewCMYK8Converter() CMYK8Converter

NewCMYK8Converter 创建一个复用查找表的 8 位 CMYK 转换器。

func (CMYK8Converter) ToRGB added in v0.1.4

func (converter CMYK8Converter) ToRGB(c, m, y, k uint8) (uint8, uint8, uint8)

ToRGB 将 8 位 CMYK 油墨量转换为 8 位 RGB。

type Transformer

type Transformer struct {
	// contains filtered or unexported fields
}

Transformer 把某个设备颜色空间(1/3/4 通道)的颜色转换为 sRGB。

func DefaultCMYK

func DefaultCMYK() (*Transformer, error)

DefaultCMYK 返回用于 DeviceCMYK(无内嵌配置文件)的默认转换器。

只有当显式设置环境变量 OFD_CMYK_ICC 指向一个 ICC 配置文件时才启用; 不做隐式的系统路径扫描,避免同一文档在不同机器上转换结果不一致。 未设置或加载失败时返回 (nil, nil),调用方应回退到近似油墨模型。

func New

func New(profileData []byte, inputChannels int) (*Transformer, error)

New 解析 ICC 配置文件并按输入通道数创建到 sRGB 的转换管线。 inputChannels 必须与配置文件的颜色空间一致(GRAY=1、RGB=3、CMYK=4)。 相同配置文件与通道数的转换器会被缓存复用。

func (*Transformer) ToRGB

func (t *Transformer) ToRGB(components []uint8) (uint8, uint8, uint8)

ToRGB 把分量(0-255)转换为 sRGB 分量(0-255)。

Jump to

Keyboard shortcuts

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