...

パッケージ image

概要 ▾

image パッケージは基本的な 2D 画像ライブラリを実装します。

基本的なインターフェースは Image と呼ばれます。 Image には色が含まれています。 色は image/color パッケージに記述されています。

Image インターフェースの値は, NewRGBA や NewPaletted などの関数を呼び出すか, GIF , JPEG , PNG などの形式の画像データを含む io.Reader で Decode を呼び出すことによって作成されます。 任意の特定の画像フォーマットを復号することは,復号器関数の事前登録を必要とします。 PNG 画像をデコードするためには,そのフォーマットのパッケージを初期化することによる副作用で,通常登録は自動的に行われます。

import _ "image/png"

プログラムのメインパッケージにあります。 _ は,パッケージを初期化の副作用のためだけにインポートすることを意味します。

詳細については, "Go image package" を参照してください。 https://golang.org/doc/articles/image_package.html

コード:

// JPEG データをデコードします。ファイルから読み込む場合,以下のようにリーダーを作成します。
//
//  reader, err := os.Open("testdata/video-001.q50.420.jpeg")
//  if err != nil {
//      log.Fatal(err)
//  }
//  defer reader.Close()
reader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(data))
m, _, err := image.Decode(reader)
if err != nil {
    log.Fatal(err)
}
bounds := m.Bounds()

// m の赤,緑,青,アルファ成分の 16 ビンヒストグラムを計算します。
//
// 画像の境界は必ずしも (0 , 0) で始まるとは限らないため, 2 つのループは bounds.Min.Y と bounds.Min.X で始まります。 Y ファーストと X セカンドをループすると, X ファーストと Y セカンドよりも優れたメモリアクセスパターンが得られる可能性が高くなります。
var histogram [16][4]int
for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
    for x := bounds.Min.X; x < bounds.Max.X; x++ {
        r, g, b, a := m.At(x, y).RGBA()
        // 色の RGBA メソッドは,範囲 [0, 65535] の値を返します。
        // 12 シフトすると,これは範囲 [0, 15] に減少します。
        histogram[r>>12][0]++
        histogram[g>>12][1]++
        histogram[b>>12][2]++
        histogram[a>>12][3]++
    }
}

// 結果を表示します。
fmt.Printf("%-14s %6s %6s %6s %6s\n", "bin", "red", "green", "blue", "alpha")
for i, x := range histogram {
    fmt.Printf("0x%04x-0x%04x: %6d %6d %6d %6d\n", i<<12, (i+1)<<12-1, x[0], x[1], x[2], x[3])
}

出力:

bin               red  green   blue  alpha
0x0000-0x0fff:    364    790   7242      0
0x1000-0x1fff:    645   2967   1039      0
0x2000-0x2fff:   1072   2299    979      0
0x3000-0x3fff:    820   2266    980      0
0x4000-0x4fff:    537   1305    541      0
0x5000-0x5fff:    319    962    261      0
0x6000-0x6fff:    322    375    177      0
0x7000-0x7fff:    601    279    214      0
0x8000-0x8fff:   3478    227    273      0
0x9000-0x9fff:   2260    234    329      0
0xa000-0xafff:    921    282    373      0
0xb000-0xbfff:    321    335    397      0
0xc000-0xcfff:    229    388    298      0
0xd000-0xdfff:    260    414    277      0
0xe000-0xefff:    516    428    298      0
0xf000-0xffff:   2785   1899   1772  15450

例 (DecodeConfig)

コード:

reader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(data))
config, format, err := image.DecodeConfig(reader)
if err != nil {
    log.Fatal(err)
}
fmt.Println("Width:", config.Width, "Height:", config.Height, "Format:", format)

目次 ▾

変数
func RegisterFormat(name, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))
type Alpha
    func NewAlpha(r Rectangle) *Alpha
    func (p *Alpha) AlphaAt(x, y int) color.Alpha
    func (p *Alpha) At(x, y int) color.Color
    func (p *Alpha) Bounds() Rectangle
    func (p *Alpha) ColorModel() color.Model
    func (p *Alpha) Opaque() bool
    func (p *Alpha) PixOffset(x, y int) int
    func (p *Alpha) Set(x, y int, c color.Color)
    func (p *Alpha) SetAlpha(x, y int, c color.Alpha)
    func (p *Alpha) SubImage(r Rectangle) Image
type Alpha16
    func NewAlpha16(r Rectangle) *Alpha16
    func (p *Alpha16) Alpha16At(x, y int) color.Alpha16
    func (p *Alpha16) At(x, y int) color.Color
    func (p *Alpha16) Bounds() Rectangle
    func (p *Alpha16) ColorModel() color.Model
    func (p *Alpha16) Opaque() bool
    func (p *Alpha16) PixOffset(x, y int) int
    func (p *Alpha16) Set(x, y int, c color.Color)
    func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)
    func (p *Alpha16) SubImage(r Rectangle) Image
type CMYK
    func NewCMYK(r Rectangle) *CMYK
    func (p *CMYK) At(x, y int) color.Color
    func (p *CMYK) Bounds() Rectangle
    func (p *CMYK) CMYKAt(x, y int) color.CMYK
    func (p *CMYK) ColorModel() color.Model
    func (p *CMYK) Opaque() bool
    func (p *CMYK) PixOffset(x, y int) int
    func (p *CMYK) Set(x, y int, c color.Color)
    func (p *CMYK) SetCMYK(x, y int, c color.CMYK)
    func (p *CMYK) SubImage(r Rectangle) Image
type Config
    func DecodeConfig(r io.Reader) (Config, string, error)
type Gray
    func NewGray(r Rectangle) *Gray
    func (p *Gray) At(x, y int) color.Color
    func (p *Gray) Bounds() Rectangle
    func (p *Gray) ColorModel() color.Model
    func (p *Gray) GrayAt(x, y int) color.Gray
    func (p *Gray) Opaque() bool
    func (p *Gray) PixOffset(x, y int) int
    func (p *Gray) Set(x, y int, c color.Color)
    func (p *Gray) SetGray(x, y int, c color.Gray)
    func (p *Gray) SubImage(r Rectangle) Image
type Gray16
    func NewGray16(r Rectangle) *Gray16
    func (p *Gray16) At(x, y int) color.Color
    func (p *Gray16) Bounds() Rectangle
    func (p *Gray16) ColorModel() color.Model
    func (p *Gray16) Gray16At(x, y int) color.Gray16
    func (p *Gray16) Opaque() bool
    func (p *Gray16) PixOffset(x, y int) int
    func (p *Gray16) Set(x, y int, c color.Color)
    func (p *Gray16) SetGray16(x, y int, c color.Gray16)
    func (p *Gray16) SubImage(r Rectangle) Image
type Image
    func Decode(r io.Reader) (Image, string, error)
type NRGBA
    func NewNRGBA(r Rectangle) *NRGBA
    func (p *NRGBA) At(x, y int) color.Color
    func (p *NRGBA) Bounds() Rectangle
    func (p *NRGBA) ColorModel() color.Model
    func (p *NRGBA) NRGBAAt(x, y int) color.NRGBA
    func (p *NRGBA) Opaque() bool
    func (p *NRGBA) PixOffset(x, y int) int
    func (p *NRGBA) Set(x, y int, c color.Color)
    func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)
    func (p *NRGBA) SubImage(r Rectangle) Image
type NRGBA64
    func NewNRGBA64(r Rectangle) *NRGBA64
    func (p *NRGBA64) At(x, y int) color.Color
    func (p *NRGBA64) Bounds() Rectangle
    func (p *NRGBA64) ColorModel() color.Model
    func (p *NRGBA64) NRGBA64At(x, y int) color.NRGBA64
    func (p *NRGBA64) Opaque() bool
    func (p *NRGBA64) PixOffset(x, y int) int
    func (p *NRGBA64) Set(x, y int, c color.Color)
    func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)
    func (p *NRGBA64) SubImage(r Rectangle) Image
type NYCbCrA
    func NewNYCbCrA(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA
    func (p *NYCbCrA) AOffset(x, y int) int
    func (p *NYCbCrA) At(x, y int) color.Color
    func (p *NYCbCrA) ColorModel() color.Model
    func (p *NYCbCrA) NYCbCrAAt(x, y int) color.NYCbCrA
    func (p *NYCbCrA) Opaque() bool
    func (p *NYCbCrA) SubImage(r Rectangle) Image
type Paletted
    func NewPaletted(r Rectangle, p color.Palette) *Paletted
    func (p *Paletted) At(x, y int) color.Color
    func (p *Paletted) Bounds() Rectangle
    func (p *Paletted) ColorIndexAt(x, y int) uint8
    func (p *Paletted) ColorModel() color.Model
    func (p *Paletted) Opaque() bool
    func (p *Paletted) PixOffset(x, y int) int
    func (p *Paletted) Set(x, y int, c color.Color)
    func (p *Paletted) SetColorIndex(x, y int, index uint8)
    func (p *Paletted) SubImage(r Rectangle) Image
type PalettedImage
type Point
    func Pt(X, Y int) Point
    func (p Point) Add(q Point) Point
    func (p Point) Div(k int) Point
    func (p Point) Eq(q Point) bool
    func (p Point) In(r Rectangle) bool
    func (p Point) Mod(r Rectangle) Point
    func (p Point) Mul(k int) Point
    func (p Point) String() string
    func (p Point) Sub(q Point) Point
type RGBA
    func NewRGBA(r Rectangle) *RGBA
    func (p *RGBA) At(x, y int) color.Color
    func (p *RGBA) Bounds() Rectangle
    func (p *RGBA) ColorModel() color.Model
    func (p *RGBA) Opaque() bool
    func (p *RGBA) PixOffset(x, y int) int
    func (p *RGBA) RGBAAt(x, y int) color.RGBA
    func (p *RGBA) Set(x, y int, c color.Color)
    func (p *RGBA) SetRGBA(x, y int, c color.RGBA)
    func (p *RGBA) SubImage(r Rectangle) Image
type RGBA64
    func NewRGBA64(r Rectangle) *RGBA64
    func (p *RGBA64) At(x, y int) color.Color
    func (p *RGBA64) Bounds() Rectangle
    func (p *RGBA64) ColorModel() color.Model
    func (p *RGBA64) Opaque() bool
    func (p *RGBA64) PixOffset(x, y int) int
    func (p *RGBA64) RGBA64At(x, y int) color.RGBA64
    func (p *RGBA64) Set(x, y int, c color.Color)
    func (p *RGBA64) SetRGBA64(x, y int, c color.RGBA64)
    func (p *RGBA64) SubImage(r Rectangle) Image
type Rectangle
    func Rect(x0, y0, x1, y1 int) Rectangle
    func (r Rectangle) Add(p Point) Rectangle
    func (r Rectangle) At(x, y int) color.Color
    func (r Rectangle) Bounds() Rectangle
    func (r Rectangle) Canon() Rectangle
    func (r Rectangle) ColorModel() color.Model
    func (r Rectangle) Dx() int
    func (r Rectangle) Dy() int
    func (r Rectangle) Empty() bool
    func (r Rectangle) Eq(s Rectangle) bool
    func (r Rectangle) In(s Rectangle) bool
    func (r Rectangle) Inset(n int) Rectangle
    func (r Rectangle) Intersect(s Rectangle) Rectangle
    func (r Rectangle) Overlaps(s Rectangle) bool
    func (r Rectangle) Size() Point
    func (r Rectangle) String() string
    func (r Rectangle) Sub(p Point) Rectangle
    func (r Rectangle) Union(s Rectangle) Rectangle
type Uniform
    func NewUniform(c color.Color) *Uniform
    func (c *Uniform) At(x, y int) color.Color
    func (c *Uniform) Bounds() Rectangle
    func (c *Uniform) ColorModel() color.Model
    func (c *Uniform) Convert(color.Color) color.Color
    func (c *Uniform) Opaque() bool
    func (c *Uniform) RGBA() (r, g, b, a uint32)
type YCbCr
    func NewYCbCr(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr
    func (p *YCbCr) At(x, y int) color.Color
    func (p *YCbCr) Bounds() Rectangle
    func (p *YCbCr) COffset(x, y int) int
    func (p *YCbCr) ColorModel() color.Model
    func (p *YCbCr) Opaque() bool
    func (p *YCbCr) SubImage(r Rectangle) Image
    func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr
    func (p *YCbCr) YOffset(x, y int) int
type YCbCrSubsampleRatio
    func (s YCbCrSubsampleRatio) String() string

Package
Package (DecodeConfig)

パッケージファイル

format.go geom.go image.go names.go ycbcr.go

変数

var (
    // Black (黒) は不透明な黒の統一画像です。
    Black = NewUniform(color.Black)
    // White (白) は不透明で白い均一な画像です。
    White = NewUniform(color.White)
    // Transparent (透明) は完全に透明な均一画像です。
    Transparent = NewUniform(color.Transparent)
    // Opaque (不透明) は,完全に不透明な均一画像です。
    Opaque = NewUniform(color.Opaque)
)

ErrFormat は,デコード中に不明な形式が検出されたことを示します。

var ErrFormat = errors.New("image: unknown format")

func RegisterFormat

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

RegisterFormat は, Decode で使用するための画像フォーマットを登録します。 name は, "jpeg" や "png" のようなフォーマットの名前です。 magic は,フォーマットのエンコーディングを識別するマジックプレフィックスです。 magic 文字列は 1 バイトに一致するワイルドカード "?" を含むことができます。 decode は,エンコードされた画像をデコードする関数です。 decodeConfig は設定だけをデコードする関数です。

type Alpha

Alpha は, At メソッドが color.Alpha 値を返すメモリ内画像です。

type Alpha struct {
    // Pix は,アルファ値として画像のピクセルを保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*1] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewAlpha

func NewAlpha(r Rectangle) *Alpha

NewAlpha は,指定された範囲の新しいアルファ画像を返します。

func (*Alpha) AlphaAt 1.4

func (p *Alpha) AlphaAt(x, y int) color.Alpha

func (*Alpha) At

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

func (*Alpha) Bounds

func (p *Alpha) Bounds() Rectangle

func (*Alpha) ColorModel

func (p *Alpha) ColorModel() color.Model

func (*Alpha) Opaque

func (p *Alpha) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*Alpha) PixOffset

func (p *Alpha) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*Alpha) Set

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

func (*Alpha) SetAlpha

func (p *Alpha) SetAlpha(x, y int, c color.Alpha)

func (*Alpha) SubImage

func (p *Alpha) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type Alpha16

Alpha16 は, At メソッドが color.Alpha16 値を返すメモリ内画像です。

type Alpha16 struct {
    // Pix は,画像のピクセルをビッグエンディアン形式のアルファ値として保持します。
    // (x, y) ピクセルは, Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*2] で始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewAlpha16

func NewAlpha16(r Rectangle) *Alpha16

NewAlpha16 は,指定された範囲の新しい Alpha16 画像を返します。

func (*Alpha16) Alpha16At 1.4

func (p *Alpha16) Alpha16At(x, y int) color.Alpha16

func (*Alpha16) At

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

func (*Alpha16) Bounds

func (p *Alpha16) Bounds() Rectangle

func (*Alpha16) ColorModel

func (p *Alpha16) ColorModel() color.Model

func (*Alpha16) Opaque

func (p *Alpha16) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*Alpha16) PixOffset

func (p *Alpha16) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*Alpha16) Set

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

func (*Alpha16) SetAlpha16

func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)

func (*Alpha16) SubImage

func (p *Alpha16) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type CMYK 1.5

CMYK は, At メソッドが color.CMYK 値を返すメモリ内画像です。

type CMYK struct {
    // Pix は, C, M, Y, K の順序で画像のピクセルを保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*4] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewCMYK 1.5

func NewCMYK(r Rectangle) *CMYK

NewCMYK は,指定された範囲の新しい CMYK 画像を返します。

func (*CMYK) At 1.5

func (p *CMYK) At(x, y int) color.Color

func (*CMYK) Bounds 1.5

func (p *CMYK) Bounds() Rectangle

func (*CMYK) CMYKAt 1.5

func (p *CMYK) CMYKAt(x, y int) color.CMYK

func (*CMYK) ColorModel 1.5

func (p *CMYK) ColorModel() color.Model

func (*CMYK) Opaque 1.5

func (p *CMYK) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*CMYK) PixOffset 1.5

func (p *CMYK) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*CMYK) Set 1.5

func (p *CMYK) Set(x, y int, c color.Color)

func (*CMYK) SetCMYK 1.5

func (p *CMYK) SetCMYK(x, y int, c color.CMYK)

func (*CMYK) SubImage 1.5

func (p *CMYK) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type Config

Config は画像のカラーモデルと寸法を保持します。

type Config struct {
    ColorModel    color.Model
    Width, Height int
}

func DecodeConfig

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

DecodeConfig は,登録されている形式でエンコードされている画像のカラーモデルと寸法をデコードします。 返される文字列は,フォーマット登録中に使用されたフォーマット名です。 フォーマット登録は,通常,コーデック固有のパッケージの init 関数によって行われます。

type Gray

Gray はメモリ内画像で,その At メソッドは color.Gray 値を返します。

type Gray struct {
    // Pix は画像のピクセルをグレー値として保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*1] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewGray

func NewGray(r Rectangle) *Gray

NewGray は,与えられた範囲で新しい Gray 画像を返します。

func (*Gray) At

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

func (*Gray) Bounds

func (p *Gray) Bounds() Rectangle

func (*Gray) ColorModel

func (p *Gray) ColorModel() color.Model

func (*Gray) GrayAt 1.4

func (p *Gray) GrayAt(x, y int) color.Gray

func (*Gray) Opaque

func (p *Gray) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*Gray) PixOffset

func (p *Gray) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*Gray) Set

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

func (*Gray) SetGray

func (p *Gray) SetGray(x, y int, c color.Gray)

func (*Gray) SubImage

func (p *Gray) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type Gray16

Gray16 は, At メソッドが color.Gray16 値を返すメモリ内画像です。

type Gray16 struct {
    // Pix は画像のピクセルをビッグエンディアン形式のグレイ値として保持します。
    // (x, y) ピクセルは, Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*2] で始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewGray16

func NewGray16(r Rectangle) *Gray16

NewGray16 は,指定された範囲の新しい Gray16 画像を返します。

func (*Gray16) At

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

func (*Gray16) Bounds

func (p *Gray16) Bounds() Rectangle

func (*Gray16) ColorModel

func (p *Gray16) ColorModel() color.Model

func (*Gray16) Gray16At 1.4

func (p *Gray16) Gray16At(x, y int) color.Gray16

func (*Gray16) Opaque

func (p *Gray16) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*Gray16) PixOffset

func (p *Gray16) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*Gray16) Set

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

func (*Gray16) SetGray16

func (p *Gray16) SetGray16(x, y int, c color.Gray16)

func (*Gray16) SubImage

func (p *Gray16) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type Image

Image (画像) は,カラーモデルから取得した color.Color 値の有限の長方形グリッドです。

type Image interface {
    // ColorModel は画像のカラーモデルを返します。
    ColorModel() color.Model
    // 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.Color
}

func Decode

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

Decode は,登録フォーマットでエンコードされている画像をデコードします。 返される文字列は,フォーマット登録中に使用されたフォーマット名です。 フォーマット登録は,通常,コーデック固有のパッケージの init 関数によって行われます。

type NRGBA

NRGBA は, At メソッドが color.NRGBA 値を返すメモリ内画像です。

type NRGBA struct {
    // Pix は, R, G, B, A の順序で画像のピクセルを保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*4] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewNRGBA

func NewNRGBA(r Rectangle) *NRGBA

NewNRGBA は,指定された範囲の新しい NRGBA 画像を返します。

func (*NRGBA) At

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

func (*NRGBA) Bounds

func (p *NRGBA) Bounds() Rectangle

func (*NRGBA) ColorModel

func (p *NRGBA) ColorModel() color.Model

func (*NRGBA) NRGBAAt 1.4

func (p *NRGBA) NRGBAAt(x, y int) color.NRGBA

func (*NRGBA) Opaque

func (p *NRGBA) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*NRGBA) PixOffset

func (p *NRGBA) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*NRGBA) Set

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

func (*NRGBA) SetNRGBA

func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)

func (*NRGBA) SubImage

func (p *NRGBA) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type NRGBA64

NRGBA64 は, At メソッドが color.NRGBA64 値を返すメモリ内画像です。

type NRGBA64 struct {
    // Pix は, R, G, B, A の順序およびビッグエンディアン形式で画像のピクセルを保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*8] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewNRGBA64

func NewNRGBA64(r Rectangle) *NRGBA64

NewNRGBA64 は,指定された範囲の新しい NRGBA64 画像を返します。

func (*NRGBA64) At

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

func (*NRGBA64) Bounds

func (p *NRGBA64) Bounds() Rectangle

func (*NRGBA64) ColorModel

func (p *NRGBA64) ColorModel() color.Model

func (*NRGBA64) NRGBA64At 1.4

func (p *NRGBA64) NRGBA64At(x, y int) color.NRGBA64

func (*NRGBA64) Opaque

func (p *NRGBA64) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*NRGBA64) PixOffset

func (p *NRGBA64) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*NRGBA64) Set

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

func (*NRGBA64) SetNRGBA64

func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)

func (*NRGBA64) SubImage

func (p *NRGBA64) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type NYCbCrA 1.6

NYCbCrA は,アルファが乗算されていないアルファ付きの Y'CbCr カラーのメモリ内画像です。 A と AStride は,埋め込まれた YCbCr の Y と YStride フィールドに似ています。

type NYCbCrA struct {
    YCbCr
    A       []uint8
    AStride int
}

func NewNYCbCrA 1.6

func NewNYCbCrA(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA

NewNYCbCrA は,与えられた範囲とサブサンプルの比率で新しい NYCbCrA 画像を返します。

func (*NYCbCrA) AOffset 1.6

func (p *NYCbCrA) AOffset(x, y int) int

AOffset は, (x, y) のピクセルに対応する A の最初の要素のインデックスを返します。

func (*NYCbCrA) At 1.6

func (p *NYCbCrA) At(x, y int) color.Color

func (*NYCbCrA) ColorModel 1.6

func (p *NYCbCrA) ColorModel() color.Model

func (*NYCbCrA) NYCbCrAAt 1.6

func (p *NYCbCrA) NYCbCrAAt(x, y int) color.NYCbCrA

func (*NYCbCrA) Opaque 1.6

func (p *NYCbCrA) Opaque() bool

Opaque は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*NYCbCrA) SubImage 1.6

func (p *NYCbCrA) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type Paletted

Paletted は,指定されたパレットへの uint8 インデックスのメモリ内画像です。

type Paletted struct {
    // Pix は,パレットのインデックスとして画像のピクセルを保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*1] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
    // Palette (パレット) は画像のパレットです。
    Palette color.Palette
}

func NewPaletted

func NewPaletted(r Rectangle, p color.Palette) *Paletted

NewPaletted は,指定された幅,高さ,パレットを持つ新しいパレット画像を返します。

func (*Paletted) At

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

func (*Paletted) Bounds

func (p *Paletted) Bounds() Rectangle

func (*Paletted) ColorIndexAt

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

func (*Paletted) ColorModel

func (p *Paletted) ColorModel() color.Model

func (*Paletted) Opaque

func (p *Paletted) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*Paletted) PixOffset

func (p *Paletted) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*Paletted) Set

func (p *Paletted) Set(x, y int, c color.Color)

func (*Paletted) SetColorIndex

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

func (*Paletted) SubImage

func (p *Paletted) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type PalettedImage

PalettedImage は色が限られたパレットから来るかもしれない画像です。 m が PalettedImage で, m.ColorModel() が color.Palette p を返す場合, m.At(x, y) は p[m.ColorIndexAt(x, y)] と同じでなければなりません。 m のカラーモデルが color.Palette ではない場合, ColorIndexAt の動作は未定義です。

type PalettedImage interface {
    // ColorIndexAt は, (x, y) にあるピクセルのパレットインデックスを返します。
    ColorIndexAt(x, y int) uint8
    Image
}

type Point

Point は X, Y 座標のペアです。 軸の増加方向は右と下です。

type Point struct {
    X, Y int
}

ZP はゼロ Point です。

非推奨: かわりに image.Point{} リテラルを使います。

var ZP Point

func Pt

func Pt(X, Y int) Point

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

func (Point) Add

func (p Point) Add(q Point) Point

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

func (Point) Div

func (p Point) Div(k int) Point

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

func (Point) Eq

func (p Point) Eq(q Point) bool

Eq は p と q が等しいかどうかを報告します。

func (Point) In

func (p Point) In(r Rectangle) bool

In は,p が r に含まれるかどうか報告します。

func (Point) Mod

func (p Point) Mod(r Rectangle) Point

Mod は, p.X-q.X が r の幅の倍数になり, p.Y-q.Y が r の高さの倍数になるように, r 中の点 q を返します。

func (Point) Mul

func (p Point) Mul(k int) Point

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

func (Point) String

func (p Point) String() string

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

func (Point) Sub

func (p Point) Sub(q Point) Point

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

type RGBA

RGBA は, At メソッドが color.RGBA 値を返すメモリ内画像です。

type RGBA struct {
    // Pix は, R, G, B, A の順序で画像のピクセルを保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*4] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewRGBA

func NewRGBA(r Rectangle) *RGBA

NewRGBA は,指定された範囲の新しい RGBA 画像を返します。

func (*RGBA) At

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

func (*RGBA) Bounds

func (p *RGBA) Bounds() Rectangle

func (*RGBA) ColorModel

func (p *RGBA) ColorModel() color.Model

func (*RGBA) Opaque

func (p *RGBA) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*RGBA) PixOffset

func (p *RGBA) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*RGBA) RGBAAt 1.4

func (p *RGBA) RGBAAt(x, y int) color.RGBA

func (*RGBA) Set

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

func (*RGBA) SetRGBA

func (p *RGBA) SetRGBA(x, y int, c color.RGBA)

func (*RGBA) SubImage

func (p *RGBA) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type RGBA64

RGBA64 は, At メソッドが color.RGBA64 値を返すメモリ内画像です。

type RGBA64 struct {
    // Pix は, R, G, B, A の順序およびビッグエンディアン形式で画像のピクセルを保持します。
    // (x, y) ピクセルは Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*8] から始まります。
    Pix []uint8
    // Stride は,垂直方向に隣接するピクセル間のピクセルストライド (バイト単位) です。
    Stride int
    // Rect は画像の境界です。
    Rect Rectangle
}

func NewRGBA64

func NewRGBA64(r Rectangle) *RGBA64

NewRGBA64 は,指定された範囲の新しい RGBA64 画像を返します。

func (*RGBA64) At

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

func (*RGBA64) Bounds

func (p *RGBA64) Bounds() Rectangle

func (*RGBA64) ColorModel

func (p *RGBA64) ColorModel() color.Model

func (*RGBA64) Opaque

func (p *RGBA64) Opaque() bool

Opaque (不透明) は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*RGBA64) PixOffset

func (p *RGBA64) PixOffset(x, y int) int

PixOffset は, (x, y) ピクセルに対応する Pix の最初の要素のインデックスを返します。

func (*RGBA64) RGBA64At 1.4

func (p *RGBA64) RGBA64At(x, y int) color.RGBA64

func (*RGBA64) Set

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

func (*RGBA64) SetRGBA64

func (p *RGBA64) SetRGBA64(x, y int, c color.RGBA64)

func (*RGBA64) SubImage

func (p *RGBA64) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

type Rectangle

Rectangle (四角形) は, Min.X <= X < Max.X, Min.Y <= Y < Max.Y の点を含みます。 Min.X <= Max.X で, Y も同様に整形式です。 点は常に整形式です。 Rectangle のメソッドは,整形式入力に対して常に整形式出力を返します。

Rectangle は,その境界が自分自身である Image でもあります。 At は,長方形内の点で color.Opaque で返し,そうでなければ color.Transparent を返します。

type Rectangle struct {
    Min, Max Point
}

ZR はゼロ Rectangle です。

非推奨: 代わりに image.Rectangle{} リテラルを使ってください。

var ZR Rectangle

func Rect

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

Rect は長方形 {Pt(x0, y0), Pt(x1, y1)} の省略形です。 返された長方形は,必要に応じて最小座標と最大座標が入れ替えられ,整形式になります。

func (Rectangle) Add

func (r Rectangle) Add(p Point) Rectangle

Add は, p によって変換された長方形 r を返します。

func (Rectangle) At 1.5

func (r Rectangle) At(x, y int) color.Color

At は Image インターフェースを実装します。

func (Rectangle) Bounds 1.5

func (r Rectangle) Bounds() Rectangle

Bounds は Image インターフェースを実装します。

func (Rectangle) Canon

func (r Rectangle) Canon() Rectangle

Canon は r の標準バージョンを返します。 返された長方形は,必要に応じて最小座標と最大座標が入れ替えられ,整形式になります。

func (Rectangle) ColorModel 1.5

func (r Rectangle) ColorModel() color.Model

ColorModel は Image インターフェースを実装します。

func (Rectangle) Dx

func (r Rectangle) Dx() int

Dx は r の幅を返します。

func (Rectangle) Dy

func (r Rectangle) Dy() int

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

func (Rectangle) Empty

func (r Rectangle) Empty() bool

Empty は長方形に点が含まれていないかどうかを報告します。

func (Rectangle) Eq

func (r Rectangle) Eq(s Rectangle) bool

Eq は, r と s が同じ点集合を含んでいるかどうかを報告します。 空の長方形はすべて等しいと見なされます。

func (Rectangle) In

func (r Rectangle) In(s Rectangle) bool

In は, r のすべての点が s にあるかどうかを報告します。

func (Rectangle) Inset

func (r Rectangle) Inset(n int) Rectangle

Inset は,長方形 r を n だけ差し込んだ値を返します。 負の値もあります。 r のいずれかの次元が 2*n より小さい場合は, r の中心付近にある空の長方形が返されます。

func (Rectangle) Intersect

func (r Rectangle) Intersect(s Rectangle) Rectangle

Intersect (交差) は, r と s の両方に含まれる最大の長方形を返します。 2 つの長方形が重ならない場合は,ゼロの長方形が返されます。

func (Rectangle) Overlaps

func (r Rectangle) Overlaps(s Rectangle) bool

Overlaps は, r と s に空でない交差があるかどうかを報告します。

func (Rectangle) Size

func (r Rectangle) Size() Point

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

func (Rectangle) String

func (r Rectangle) String() string

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

func (Rectangle) Sub

func (r Rectangle) Sub(p Point) Rectangle

Sub は, -p によって変換された長方形 r を返します。

func (Rectangle) Union

func (r Rectangle) Union(s Rectangle) Rectangle

Union は, r と s の両方を含む最小の長方形を返します。

type Uniform

Uniform は,均一サイズの無限サイズの画像です。 color.Color, color.Model ,および Image の各インターフェースを実装します。

type Uniform struct {
    C color.Color
}

func NewUniform

func NewUniform(c color.Color) *Uniform

func (*Uniform) At

func (c *Uniform) At(x, y int) color.Color

func (*Uniform) Bounds

func (c *Uniform) Bounds() Rectangle

func (*Uniform) ColorModel

func (c *Uniform) ColorModel() color.Model

func (*Uniform) Convert

func (c *Uniform) Convert(color.Color) color.Color

func (*Uniform) Opaque

func (c *Uniform) Opaque() bool

Opaque は画像全体をスキャンし,完全に不透明かどうかを報告します。

func (*Uniform) RGBA

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

type YCbCr

YCbCr は, Y'CbCr カラーのメモリ内画像です。 ピクセルごとに 1 つの Y サンプルがありますが,各 Cb および Cr サンプルは 1 つ以上のピクセルにまたがることができます。 YStride は,垂直方向に隣接するピクセル間の Y スライスインデックスのデルタです。 CStride は,別々のクロマサンプルにマッピングされる垂直方向に隣接するピクセル間の Cb および Cr スライスインデックスのデルタです。 これは絶対的な要件ではありませんが, YStride と len(Y) は通常 8 の倍数です。

For 4:4:4, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/1.
For 4:2:2, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/2.
For 4:2:0, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/4.
For 4:4:0, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/2.
For 4:1:1, CStride == YStride/4 && len(Cb) == len(Cr) == len(Y)/4.
For 4:1:0, CStride == YStride/4 && len(Cb) == len(Cr) == len(Y)/8.
type YCbCr struct {
    Y, Cb, Cr      []uint8
    YStride        int
    CStride        int
    SubsampleRatio YCbCrSubsampleRatio
    Rect           Rectangle
}

func NewYCbCr

func NewYCbCr(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr

NewYCbCr は,与えられた範囲とサブサンプルの比率で新しい YCbCr 画像を返します。

func (*YCbCr) At

func (p *YCbCr) At(x, y int) color.Color

func (*YCbCr) Bounds

func (p *YCbCr) Bounds() Rectangle

func (*YCbCr) COffset

func (p *YCbCr) COffset(x, y int) int

COffset は, (x, y) のピクセルに対応する Cb または Cr の最初の要素のインデックスを返します。

func (*YCbCr) ColorModel

func (p *YCbCr) ColorModel() color.Model

func (*YCbCr) Opaque

func (p *YCbCr) Opaque() bool

func (*YCbCr) SubImage

func (p *YCbCr) SubImage(r Rectangle) Image

SubImage は, r を通して見える p の部分を表す画像を返します。 戻り値は,元の画像とピクセルを共有します。

func (*YCbCr) YCbCrAt 1.4

func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr

func (*YCbCr) YOffset

func (p *YCbCr) YOffset(x, y int) int

YOffset は, (x, y) のピクセルに対応する Y の最初の要素のインデックスを返します。

type YCbCrSubsampleRatio

YCbCrSubsampleRatio は, YCbCr 画像で使用される彩度サブサンプル比です。

type YCbCrSubsampleRatio int
const (
    YCbCrSubsampleRatio444 YCbCrSubsampleRatio = iota
    YCbCrSubsampleRatio422
    YCbCrSubsampleRatio420
    YCbCrSubsampleRatio440
    YCbCrSubsampleRatio411
    YCbCrSubsampleRatio410
)

func (YCbCrSubsampleRatio) String

func (s YCbCrSubsampleRatio) String() string

サブディレクトリ

名前 概要
..
color color パッケージは基本的なカラーライブラリを実装します。
palette palette パッケージは標準カラーパレットを提供します。
draw draw パッケージは画像合成関数を提供します。
gif gif パッケージは GIF 画像デコーダとエンコーダを実装します。
jpeg jpeg パッケージは JPEG 画像デコーダとエンコーダを実装します。
png png パッケージは PNG 画像デコーダとエンコーダを実装します。