storage/storage_image.go
func newImageSource(imageRef storageReference) (*storageImageSource, error) {
	// First, locate the image.
	img, err := imageRef.resolveImage()
	if err != nil {
		return nil, err
	}

	// Build the reader object.
	image := &storageImageSource{
		imageRef:       imageRef,
		image:          img,
		layerPosition:  make(map[digest.Digest]int),
		SignatureSizes: []int{},
	}
	if img.Metadata != "" {
		if err := json.Unmarshal([]byte(img.Metadata), image); err != nil {
			return nil, errors.Wrap(err, "error decoding metadata for source image")
		}
	}
	return image, nil
}
func newImageSource(imageRef storageReference) (*storageImageSource, error) {
	// First, locate the image.
	img, err := imageRef.resolveImage()
	if err != nil {
		return nil, err
	}

	// Build the reader object.
	image := &storageImageSource{
		imageRef:       imageRef,
		image:          img,
		layerPosition:  make(map[digest.Digest]int),
		SignatureSizes: []int{},
	}
	if img.Metadata != "" {
		if err := json.Unmarshal([]byte(img.Metadata), image); err != nil {
			return nil, errors.Wrap(err, "error decoding metadata for source image")
		}
	}
	return image, nil
}
func newImageSource ( imageRef storageReference ) ( * storageImageSource , error ) { // First, locate the image. img , err := imageRef . resolveImage ( ) if err != nil { return nil , err } // Build the reader object. image := & storageImageSource { imageRef : imageRef , image : img , layerPosition : make ( map [ digest . Digest ] int ) , SignatureSizes : [ ] int { } , } if img . Metadata != " " { if err := json . Unmarshal ( [ ] byte ( img . Metadata ) , image ) ; err != nil { return nil , errors . Wrap ( err , " " ) } } return image , nil }
// newImageSource sets up an image for reading.
newImageSource sets up an image for reading .