webp/nycbcra: delete deprecated package

This package has been deprecated since Go 1.6, which is long ago.
There's a warning printed whenever this package is imported, which
helped people migrate away from it by now. Delete it since it's
unused and unsupported.

Change-Id: If84b631ebff6530cdb955af34fa7b84d50130166
Reviewed-on: https://go-review.googlesource.com/c/148570
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/webp/nycbcra/nycbcra.go b/webp/nycbcra/nycbcra.go
deleted file mode 100644
index 101c41f..0000000
--- a/webp/nycbcra/nycbcra.go
+++ /dev/null
@@ -1,194 +0,0 @@
-// Copyright 2014 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.
-
-// Package nycbcra provides non-alpha-premultiplied Y'CbCr-with-alpha image and
-// color types.
-//
-// Deprecated: as of Go 1.6. Use the standard image and image/color packages
-// instead.
-package nycbcra // import "golang.org/x/image/webp/nycbcra"
-
-import (
-	"image"
-	"image/color"
-)
-
-func init() {
-	println("The golang.org/x/image/webp/nycbcra package is deprecated, as of Go 1.6. " +
-		"Use the standard image and image/color packages instead.")
-}
-
-// TODO: move this to the standard image and image/color packages, so that the
-// image/draw package can have fast-path code. Moving would rename:
-//	nycbcra.Color      to color.NYCbCrA
-//	nycbcra.ColorModel to color.NYCbCrAModel
-//	nycbcra.Image      to image.NYCbCrA
-
-// Color represents a non-alpha-premultiplied Y'CbCr-with-alpha color, having
-// 8 bits each for one luma, two chroma and one alpha component.
-type Color struct {
-	color.YCbCr
-	A uint8
-}
-
-func (c Color) RGBA() (r, g, b, a uint32) {
-	r8, g8, b8 := color.YCbCrToRGB(c.Y, c.Cb, c.Cr)
-	a = uint32(c.A) * 0x101
-	r = uint32(r8) * 0x101 * a / 0xffff
-	g = uint32(g8) * 0x101 * a / 0xffff
-	b = uint32(b8) * 0x101 * a / 0xffff
-	return
-}
-
-// ColorModel is the Model for non-alpha-premultiplied Y'CbCr-with-alpha colors.
-var ColorModel color.Model = color.ModelFunc(nYCbCrAModel)
-
-func nYCbCrAModel(c color.Color) color.Color {
-	switch c := c.(type) {
-	case Color:
-		return c
-	case color.YCbCr:
-		return Color{c, 0xff}
-	}
-	r, g, b, a := c.RGBA()
-
-	// Convert from alpha-premultiplied to non-alpha-premultiplied.
-	if a != 0 {
-		r = (r * 0xffff) / a
-		g = (g * 0xffff) / a
-		b = (b * 0xffff) / a
-	}
-
-	y, u, v := color.RGBToYCbCr(uint8(r>>8), uint8(g>>8), uint8(b>>8))
-	return Color{color.YCbCr{Y: y, Cb: u, Cr: v}, uint8(a >> 8)}
-}
-
-// Image is an in-memory image of non-alpha-premultiplied Y'CbCr-with-alpha
-// colors. A and AStride are analogous to the Y and YStride fields of the
-// embedded YCbCr.
-type Image struct {
-	image.YCbCr
-	A       []uint8
-	AStride int
-}
-
-func (p *Image) ColorModel() color.Model {
-	return ColorModel
-}
-
-func (p *Image) At(x, y int) color.Color {
-	return p.NYCbCrAAt(x, y)
-}
-
-func (p *Image) NYCbCrAAt(x, y int) Color {
-	if !(image.Point{X: x, Y: y}.In(p.Rect)) {
-		return Color{}
-	}
-	yi := p.YOffset(x, y)
-	ci := p.COffset(x, y)
-	ai := p.AOffset(x, y)
-	return Color{
-		color.YCbCr{
-			Y:  p.Y[yi],
-			Cb: p.Cb[ci],
-			Cr: p.Cr[ci],
-		},
-		p.A[ai],
-	}
-}
-
-// AOffset returns the index of the first element of A that corresponds to
-// the pixel at (x, y).
-func (p *Image) AOffset(x, y int) int {
-	return (y-p.Rect.Min.Y)*p.AStride + (x - p.Rect.Min.X)
-}
-
-// SubImage returns an image representing the portion of the image p visible
-// through r. The returned value shares pixels with the original image.
-func (p *Image) SubImage(r image.Rectangle) image.Image {
-	// TODO: share code with image.NewYCbCr when this type moves into the
-	// standard image package.
-	r = r.Intersect(p.Rect)
-	// If r1 and r2 are Rectangles, r1.Intersect(r2) is not guaranteed to be inside
-	// either r1 or r2 if the intersection is empty. Without explicitly checking for
-	// this, the Pix[i:] expression below can panic.
-	if r.Empty() {
-		return &Image{
-			YCbCr: image.YCbCr{
-				SubsampleRatio: p.SubsampleRatio,
-			},
-		}
-	}
-	yi := p.YOffset(r.Min.X, r.Min.Y)
-	ci := p.COffset(r.Min.X, r.Min.Y)
-	ai := p.AOffset(r.Min.X, r.Min.Y)
-	return &Image{
-		YCbCr: image.YCbCr{
-			Y:              p.Y[yi:],
-			Cb:             p.Cb[ci:],
-			Cr:             p.Cr[ci:],
-			SubsampleRatio: p.SubsampleRatio,
-			YStride:        p.YStride,
-			CStride:        p.CStride,
-			Rect:           r,
-		},
-		A:       p.A[ai:],
-		AStride: p.AStride,
-	}
-}
-
-// Opaque scans the entire image and reports whether it is fully opaque.
-func (p *Image) Opaque() bool {
-	if p.Rect.Empty() {
-		return true
-	}
-	i0, i1 := 0, p.Rect.Dx()
-	for y := p.Rect.Min.Y; y < p.Rect.Max.Y; y++ {
-		for _, a := range p.A[i0:i1] {
-			if a != 0xff {
-				return false
-			}
-		}
-		i0 += p.AStride
-		i1 += p.AStride
-	}
-	return true
-}
-
-// New returns a new Image with the given bounds and subsample ratio.
-func New(r image.Rectangle, subsampleRatio image.YCbCrSubsampleRatio) *Image {
-	// TODO: share code with image.NewYCbCr when this type moves into the
-	// standard image package.
-	w, h, cw, ch := r.Dx(), r.Dy(), 0, 0
-	switch subsampleRatio {
-	case image.YCbCrSubsampleRatio422:
-		cw = (r.Max.X+1)/2 - r.Min.X/2
-		ch = h
-	case image.YCbCrSubsampleRatio420:
-		cw = (r.Max.X+1)/2 - r.Min.X/2
-		ch = (r.Max.Y+1)/2 - r.Min.Y/2
-	case image.YCbCrSubsampleRatio440:
-		cw = w
-		ch = (r.Max.Y+1)/2 - r.Min.Y/2
-	default:
-		// Default to 4:4:4 subsampling.
-		cw = w
-		ch = h
-	}
-	b := make([]byte, 2*w*h+2*cw*ch)
-	// TODO: use s[i:j:k] notation to set the cap.
-	return &Image{
-		YCbCr: image.YCbCr{
-			Y:              b[:w*h],
-			Cb:             b[w*h+0*cw*ch : w*h+1*cw*ch],
-			Cr:             b[w*h+1*cw*ch : w*h+2*cw*ch],
-			SubsampleRatio: subsampleRatio,
-			YStride:        w,
-			CStride:        cw,
-			Rect:           r,
-		},
-		A:       b[w*h+2*cw*ch:],
-		AStride: w,
-	}
-}