58 lines
1.9 KiB
Go
58 lines
1.9 KiB
Go
|
// Copyright 2016 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
// +build go1.9 go1.8.typealias
|
||
|
|
||
|
package draw
|
||
|
|
||
|
import (
|
||
|
"image/draw"
|
||
|
)
|
||
|
|
||
|
// We use type aliases (new in Go 1.9) for the exported names from the standard
|
||
|
// library's image/draw package. This is not merely syntactic sugar for
|
||
|
//
|
||
|
// type Drawer draw.Drawer
|
||
|
//
|
||
|
// as aliasing means that the types in this package, such as draw.Image and
|
||
|
// draw.Op, are identical to the corresponding draw.Image and draw.Op types in
|
||
|
// the standard library. In comparison, prior to Go 1.9, the code in go1_8.go
|
||
|
// defines new types that mimic the old but are different types.
|
||
|
//
|
||
|
// The package documentation, in draw.go, explicitly gives the intent of this
|
||
|
// package:
|
||
|
//
|
||
|
// This package is a superset of and a drop-in replacement for the
|
||
|
// image/draw package in the standard library.
|
||
|
//
|
||
|
// Drop-in replacement means that I can replace all of my "image/draw" imports
|
||
|
// with "golang.org/x/image/draw", to access additional features in this
|
||
|
// package, and no further changes are required. That's mostly true, but not
|
||
|
// completely true unless we use type aliases.
|
||
|
//
|
||
|
// Without type aliases, users might need to import both "image/draw" and
|
||
|
// "golang.org/x/image/draw" in order to convert from two conceptually
|
||
|
// equivalent but different (from the compiler's point of view) types, such as
|
||
|
// from one draw.Op type to another draw.Op type, to satisfy some other
|
||
|
// interface or function signature.
|
||
|
|
||
|
// Drawer contains the Draw method.
|
||
|
type Drawer = draw.Drawer
|
||
|
|
||
|
// Image is an image.Image with a Set method to change a single pixel.
|
||
|
type Image = draw.Image
|
||
|
|
||
|
// Op is a Porter-Duff compositing operator.
|
||
|
type Op = draw.Op
|
||
|
|
||
|
const (
|
||
|
// Over specifies ``(src in mask) over dst''.
|
||
|
Over Op = draw.Over
|
||
|
// Src specifies ``src in mask''.
|
||
|
Src Op = draw.Src
|
||
|
)
|
||
|
|
||
|
// Quantizer produces a palette for an image.
|
||
|
type Quantizer = draw.Quantizer
|