import "image"

このパッケージは、基本的な二次元画像ライブラリを実装しています。

パッケージファイル

color.go format.go geom.go image.go names.go

変数

var (
    // Blackは、不透明で黒のColorImageです。
    Black = NewColorImage(Gray16Color{0})
    // Whiteは、不透明で白のColorImageです。
    White = NewColorImage(Gray16Color{0xffff})
    // Transparentは、完全に透明なColorImageです。
    Transparent = NewColorImage(Alpha16Color{0})
    // Opaqueは、完全に不透明なColorImageです。
    Opaque = NewColorImage(Alpha16Color{0xffff})
)

UnknownFormatErrは、デコード中に未知のフォーマットが現れたことを示します。

var UnknownFormatErr = os.NewError("image: unknown format")

RegisterFormat関数

func RegisterFormat(name, magic string, decode func(io.Reader) (Image, os.Error), decodeConfig func(io.Reader) (Config, os.Error))

RegisterFormatは、Decodeで使用するイメージフォーマットを登録します。nameは、「jpeg」、「png」といったフォーマット名です。magicは、フォーマットのエンコーディングを示すマジックプレフィックスです。decodeは、エンコードされているイメージをデコードする関数です。DecodeConfigは、イメージのconfigだけをデコードする関数です。

Alpha型

Alphaは、AlphaColor値のメモリ内イメージです。

type Alpha struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []AlphaColor
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewAlpha関数

func NewAlpha(w, h int) *Alpha

NewAlphaは、与えた幅と高さを持つ新しいAlphaを返します。

(*Alpha) At関数

func (p *Alpha) At(x, y int) Color

(*Alpha) Bounds関数

func (p *Alpha) Bounds() Rectangle

(*Alpha) ColorModel関数

func (p *Alpha) ColorModel() ColorModel

(*Alpha) Opaque関数

func (p *Alpha) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*Alpha) Set関数

func (p *Alpha) Set(x, y int, c Color)

Alpha16型

Alpha16は、Alpha16Color値のメモリ内イメージです。

type Alpha16 struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []Alpha16Color
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewAlpha16関数

func NewAlpha16(w, h int) *Alpha16

NewAlpha16は、与えた幅と高さを持つ新しいAlpha16を返します。

(*Alpha16) At関数

func (p *Alpha16) At(x, y int) Color

(*Alpha16) Bounds関数

func (p *Alpha16) Bounds() Rectangle

(*Alpha16) ColorModel関数

func (p *Alpha16) ColorModel() ColorModel

(*Alpha16) Opaque関数

func (p *Alpha16) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*Alpha16) Set関数

func (p *Alpha16) Set(x, y int, c Color)

Alpha16Color型

Alpha16Colorは、16ビットのアルファを表します。

type Alpha16Color struct {
    A uint16
}

(Alpha16Color) RGBA関数

func (c Alpha16Color) RGBA() (r, g, b, a uint32)

AlphaColor型

AlphaColorは、8ビットのアルファを表します。

type AlphaColor struct {
    A uint8
}

(AlphaColor) RGBA関数

func (c AlphaColor) RGBA() (r, g, b, a uint32)

Color型

すべてのColorを、この64ビット、アルファ乗算済みRGBAに変換可能ですが、精度が落ちる可能性があります。各チャネルの値は、次の範囲[0, 0xFFFF]内です

type Color interface {
    RGBA() (r, g, b, a uint32)
}

ColorImage型

ColorImageは、すべて同一のColorで無限大サイズのImageです。これは、ColorとImageインタフェースを両方実装しています。

type ColorImage struct {
    C Color
}

NewColorImage関数

func NewColorImage(c Color) *ColorImage

(*ColorImage) At関数

func (c *ColorImage) At(x, y int) Color

(*ColorImage) Bounds関数

func (c *ColorImage) Bounds() Rectangle

(*ColorImage) ColorModel関数

func (c *ColorImage) ColorModel() ColorModel

(*ColorImage) Opaque関数

func (c *ColorImage) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*ColorImage) RGBA関数

func (c *ColorImage) RGBA() (r, g, b, a uint32)

ColorModel型

ColorModelは、他のColorから独自のカラーモデルを持ったColorへ変換可能ですが、精度が落ちる可能性があります。

type ColorModel interface {
    Convert(c Color) Color
}

Alpha16Colorと結びついたColorModel

var Alpha16ColorModel ColorModel = ColorModelFunc(toAlpha16Color)

AlphaColorと結びついたColorModel

var AlphaColorModel ColorModel = ColorModelFunc(toAlphaColor)

Gray16Colorと結びついたColorModel

var Gray16ColorModel ColorModel = ColorModelFunc(toGray16Color)

GrayColorと結びついたColorModel

var GrayColorModel ColorModel = ColorModelFunc(toGrayColor)

NRGBA64Colorと結びついたColorModel

var NRGBA64ColorModel ColorModel = ColorModelFunc(toNRGBA64Color)

NRGBAColorと結びついたColorModel

var NRGBAColorModel ColorModel = ColorModelFunc(toNRGBAColor)

RGBA64Colorと結びついたColorModel

var RGBA64ColorModel ColorModel = ColorModelFunc(toRGBA64Color)

RGBAColorと結びついたColorModel

var RGBAColorModel ColorModel = ColorModelFunc(toRGBAColor)

ColorModelFunc型

ColorModelFunc型は、色変換を行う通常の関数をColorModelとして使えるようにするアダプタです。fが該当する関数のときColorModelFunc(f)は、変換時にfを呼び出すColorModelオブジェクトとなります。

type ColorModelFunc func(Color) Color

(ColorModelFunc) Convert関数

func (f ColorModelFunc) Convert(c Color) Color

Config型

Configは、イメージのカラーモデルと寸法で構成されます。

type Config struct {
    ColorModel    ColorModel
    Width, Height int
}

DecodeConfig関数

func DecodeConfig(r io.Reader) (Config, string, os.Error)

DecodeConfigは、登録済みフォーマットでエンコードされているイメージのカラーモデルと寸法をデコードします。返される文字列は、フォーマット登録時に使用されたフォーマット名です。フォーマットの登録は通常、コーデックを定義しているパッケージのinitメソッドで行われます。

Gray型

Grayは、GrayColor値のメモリ内イメージです。

type Gray struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []GrayColor
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewGray関数

func NewGray(w, h int) *Gray

NewGrayは、与えた幅と高さを持つ新しいGrayを返します。

(*Gray) At関数

func (p *Gray) At(x, y int) Color

(*Gray) Bounds関数

func (p *Gray) Bounds() Rectangle

(*Gray) ColorModel関数

func (p *Gray) ColorModel() ColorModel

(*Gray) Opaque関数

func (p *Gray) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*Gray) Set関数

func (p *Gray) Set(x, y int, c Color)

Gray16型

Gray16は、Gray16Color値のメモリ内イメージです。

type Gray16 struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []Gray16Color
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewGray16関数

func NewGray16(w, h int) *Gray16

NewGray16は、与えた幅と高さを持つ新しいGray16を返します。

(*Gray16) At関数

func (p *Gray16) At(x, y int) Color

(*Gray16) Bounds関数

func (p *Gray16) Bounds() Rectangle

(*Gray16) ColorModel関数

func (p *Gray16) ColorModel() ColorModel

(*Gray16) Opaque関数

func (p *Gray16) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*Gray16) Set関数

func (p *Gray16) Set(x, y int, c Color)

Gray16Color型

Gray16Colorは、16ビットのグレースケールカラーを表します。

type Gray16Color struct {
    Y uint16
}

(Gray16Color) RGBA関数

func (c Gray16Color) RGBA() (r, g, b, a uint32)

GrayColor型

GrayColorは、8ビットのグレースケールカラーを表します。

type GrayColor struct {
    Y uint8
}

(GrayColor) RGBA関数

func (c GrayColor) RGBA() (r, g, b, a uint32)

Image型

Imageは、ColorModelから得られるColorを使った有限の長方形グリッドです。

type Image interface {
    // ColorModelは、イメージのColorModelを返します。
    ColorModel() ColorModel
    // Boundsは、Atが非ゼロ値を返すことができる領域を返します。
    // この境界は、点(0, 0)を必ずしも含むわけではありません。
    Bounds() Rectangle
    // Atは、ピクセル(x, y)のカラーを返します。
    // At(Bounds().Min.X, Bounds().Min.Y)は、グリッドの左上のピクセルを返します。
    // At(Bounds().Max.X-1, Bounds().Max.Y-1)は、右下のピクセルを返します。
    At(x, y int) Color
}

Decode関数

func Decode(r io.Reader) (Image, string, os.Error)

Decodeは、登録済みフォーマットでエンコードされているイメージをデコードします。返される文字列は、フォーマット登録時に使用されたフォーマット名です。フォーマットの登録は通常、コーデックを定義しているパッケージのinitメソッドで行われます。

NRGBA型

NRGBAは、NRGBAColor値のメモリ内イメージです。

type NRGBA struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []NRGBAColor
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewNRGBA関数

func NewNRGBA(w, h int) *NRGBA

NewNRGBAは、与えた幅と高さを持つ新しいNRGBAを返します。

(*NRGBA) At関数

func (p *NRGBA) At(x, y int) Color

(*NRGBA) Bounds関数

func (p *NRGBA) Bounds() Rectangle

(*NRGBA) ColorModel関数

func (p *NRGBA) ColorModel() ColorModel

(*NRGBA) Opaque関数

func (p *NRGBA) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*NRGBA) Set関数

func (p *NRGBA) Set(x, y int, c Color)

NRGBA64型

NRGBA64は、NRGBA64Color値のメモリ内イメージです。

type NRGBA64 struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []NRGBA64Color
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewNRGBA64関数

func NewNRGBA64(w, h int) *NRGBA64

NewNRGBA64は、与えた幅と高さを持つ新しいNRGBA64を返します。

(*NRGBA64) At関数

func (p *NRGBA64) At(x, y int) Color

(*NRGBA64) Bounds関数

func (p *NRGBA64) Bounds() Rectangle

(*NRGBA64) ColorModel関数

func (p *NRGBA64) ColorModel() ColorModel

(*NRGBA64) Opaque関数

func (p *NRGBA64) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*NRGBA64) Set関数

func (p *NRGBA64) Set(x, y int, c Color)

NRGBA64Color型

NRGBA64Colorは、非アルファ乗算済み64ビットカラーを表します。赤、緑、青、アルファがそれぞれ16ビットの情報を持ちます。

type NRGBA64Color struct {
    R, G, B, A uint16
}

(NRGBA64Color) RGBA関数

func (c NRGBA64Color) RGBA() (r, g, b, a uint32)

NRGBAColor型

NRGBAColorは、非アルファ乗算済み32ビットカラーを表します。

type NRGBAColor struct {
    R, G, B, A uint8
}

(NRGBAColor) RGBA関数

func (c NRGBAColor) RGBA() (r, g, b, a uint32)

Paletted型

Palettedは、二次元スライスのuint8とPalettedColorModelによって表されるメモリ内イメージです。

type Paletted struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []uint8
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
    // Palette is the image's palette.
    Palette PalettedColorModel
}

NewPaletted関数

func NewPaletted(w, h int, m PalettedColorModel) *Paletted

NewPalettedは、与えた幅、高さ、パレットを持つ新しいPalettedを返します。

(*Paletted) At関数

func (p *Paletted) At(x, y int) Color

(*Paletted) Bounds関数

func (p *Paletted) Bounds() Rectangle

(*Paletted) ColorIndexAt関数

func (p *Paletted) ColorIndexAt(x, y int) uint8

(*Paletted) ColorModel関数

func (p *Paletted) ColorModel() ColorModel

(*Paletted) Opaque関数

func (p *Paletted) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*Paletted) SetColorIndex関数

func (p *Paletted) SetColorIndex(x, y int, index uint8)

PalettedColorModel型

PalettedColorModelは、固定カラーパレットを表します。

type PalettedColorModel []Color

(PalettedColorModel) Convert関数

func (p PalettedColorModel) Convert(c Color) Color

Convertは、ユークリッドのR、G、B空間内でcに最も近いパレットカラーを返します。

Point型

Pointは、X, Y座標のペアです。軸の+方向は、右および下です。

type Point struct {
    X, Y int
}

ZPは、ゼロ座標です。

var ZP Point

Pt関数

func Pt(X, Y int) Point

Ptは、Point{X, Y}の簡略形です。

(Point) Add関数

func (p Point) Add(q Point) Point

Addは、p+qのベクトルを返します。

(Point) Div関数

func (p Point) Div(k int) Point

Divは、p/kのベクトルを返します。

(Point) Eq関数

func (p Point) Eq(q Point) bool

Eqは、pとqがイコールであるかを返します。

(Point) Mod関数

func (p Point) Mod(r Rectangle) Point

Modは、p.X-q.Xがrの幅の倍数かつ、p.Y-q.Yがrの高さの倍数となる、r内の座標qを返します。

(Point) Mul関数

func (p Point) Mul(k int) Point

Mulは、p*kのベクトルを返します。

(Point) String関数

func (p Point) String() string

Stringは、pの文字列表現を 「(3,4)」のように返します。

(Point) Sub関数

func (p Point) Sub(q Point) Point

Subは、p-qのベクトルを返します。

RGBA型

RGBAは、RGBAColor値のメモリ内イメージです。

type RGBA struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []RGBAColor
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewRGBA関数

func NewRGBA(w, h int) *RGBA

NewRGBAは、与えた幅と高さを持つ新しいRGBAを返します。

(*RGBA) At関数

func (p *RGBA) At(x, y int) Color

(*RGBA) Bounds関数

func (p *RGBA) Bounds() Rectangle

(*RGBA) ColorModel関数

func (p *RGBA) ColorModel() ColorModel

(*RGBA) Opaque関数

func (p *RGBA) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*RGBA) Set関数

func (p *RGBA) Set(x, y int, c Color)

RGBA64型

RGBA64は、RGBA64Color値のメモリ内イメージです。

type RGBA64 struct {
    // Pixは、イメージのピクセルを保持します。位置(x, y)のピクセルは、Pix[y*Stride+x]です。
    Pix    []RGBA64Color
    Stride int
    // Rectは、イメージの範囲です。
    Rect Rectangle
}

NewRGBA64関数

func NewRGBA64(w, h int) *RGBA64

NewRGBA64は、与えた幅と高さを持つ新しいRGBA64を返します。

(*RGBA64) At関数

func (p *RGBA64) At(x, y int) Color

(*RGBA64) Bounds関数

func (p *RGBA64) Bounds() Rectangle

(*RGBA64) ColorModel関数

func (p *RGBA64) ColorModel() ColorModel

(*RGBA64) Opaque関数

func (p *RGBA64) Opaque() bool

Opaqueは、イメージ全体をスキャンし、イメージが完全に不透明であるかどうかを返します。

(*RGBA64) Set関数

func (p *RGBA64) Set(x, y int, c Color)

RGBA64Color型

RGBA64Colorは、64ビット、アルファ乗算済みカラーを表します。赤、緑、青、アルファがそれぞれ16ビットの情報を持ちます。

type RGBA64Color struct {
    R, G, B, A uint16
}

(RGBA64Color) RGBA関数

func (c RGBA64Color) RGBA() (r, g, b, a uint32)

RGBAColor型

RGBAColorは、従来から使われている32ビット、アルファ乗算済みカラーを表します。赤、緑、青、アルファがそれぞれ8ビットの情報を持ちます。

type RGBAColor struct {
    R, G, B, A uint8
}

(RGBAColor) RGBA関数

func (c RGBAColor) RGBA() (r, g, b, a uint32)

Rectangle型

Rectangle(矩形)は、Min.X <= X < Max.X、 Min.Y <= Y < Max.Yとなる座標を持ちます。Min.X <= Max.Xであり、Yも同様のときのRectangleは正常な値です。Pointは、常に正常な値です。Rectangleのメソッドは、入力が正常な値であれば、常に正常な値を返します。

type Rectangle struct {
    Min, Max Point
}

ZRは、ゼロ矩形です。

var ZR Rectangle

Rect関数

func Rect(x0, y0, x1, y1 int) Rectangle

Rectは、Rectangle{Pt(x0, y0), Pt(x1, y1)}の簡略形です。

(Rectangle) Add関数

func (r Rectangle) Add(p Point) Rectangle

Addは、pに平行移動された矩形rを返します。

(Rectangle) Canon関数

func (r Rectangle) Canon() Rectangle

Canon は、rを正規化した値を返します。返される矩形が正常な値となるように、必要に応じて最小・最大座標が入れ替えられます。

(Rectangle) Contains関数

func (r Rectangle) Contains(p Point) bool

Containsは、rにpが含まれているかを返します。

(Rectangle) Dx関数

func (r Rectangle) Dx() int

Dxは、rの幅を返します。

(Rectangle) Dy関数

func (r Rectangle) Dy() int

Dyは、rの高さを返します。

(Rectangle) Empty関数

func (r Rectangle) Empty() bool

Emptyは、矩形内に座標が存在しないかを返します。

(Rectangle) Eq関数

func (r Rectangle) Eq(s Rectangle) bool

Eqは、rとsがイコールかを返します。

(Rectangle) Inset関数

func (r Rectangle) Inset(n int) Rectangle

Insetは、矩形rからnを縁取りして返します。nにはマイナス値が指定できます。rの縦横が、どちらも2*n未満のときは、rの中心付近の空の矩形が返されます。

(Rectangle) Intersect関数

func (r Rectangle) Intersect(s Rectangle) Rectangle

Intersectは、rとs両方に含まれている最大の矩形を返します。2つの矩形が重なっていなければ、ゼロ矩形が返されます。

(Rectangle) Overlaps関数

func (r Rectangle) Overlaps(s Rectangle) bool

Overlapsは、rとsが重なり合っているかを返します。

(Rectangle) Size関数

func (r Rectangle) Size() Point

Sizeは、rの幅と高さを返します。

(Rectangle) String関数

func (r Rectangle) String() string

Stringは、rの文字列表現を「(3,4)-(6,5)」のように返します。

(Rectangle) Sub関数

func (r Rectangle) Sub(p Point) Rectangle

Subは、-pに平行移動された矩形rを返します。

(Rectangle) Union関数

func (r Rectangle) Union(s Rectangle) Rectangle

Unionは、rとsを含む最小の矩形を返します。

Tiled型

Tiledは、別のイメージを縦横に繰り返し並べたイメージで、大きさは無限大です。Tiled{i, p}.At(x, y)の値は、iの範囲内にある全ての座標{x+p.X, y+p.Y}において、i.At(x+p.X, y+p.Y)と同じ値です。

type Tiled struct {
    I      Image
    Offset Point
}

NewTiled関数

func NewTiled(i Image, offset Point) *Tiled

(*Tiled) At関数

func (t *Tiled) At(x, y int) Color

(*Tiled) Bounds関数

func (t *Tiled) Bounds() Rectangle

(*Tiled) ColorModel関数

func (t *Tiled) ColorModel() ColorModel