Switch to using the dep tool and update all the dependencies
This commit is contained in:
+91
@@ -0,0 +1,91 @@
|
||||
// Copyright 2016 Google Inc. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package vision
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
|
||||
pb "google.golang.org/genproto/googleapis/cloud/vision/v1"
|
||||
)
|
||||
|
||||
// An Image represents the contents of an image to run detection algorithms on,
|
||||
// along with metadata. Images may be described by their raw bytes, or by a
|
||||
// reference to a a Google Cloude Storage (GCS) object.
|
||||
type Image struct {
|
||||
// Exactly one of content and gcsURI will be non-zero.
|
||||
content []byte // raw image bytes
|
||||
uri string // URI of the form "gs://BUCKET/OBJECT", or public URL
|
||||
|
||||
// Rect is a rectangle on the Earth's surface represented by the
|
||||
// image. It is optional.
|
||||
Rect *LatLngRect
|
||||
|
||||
// LanguageHints is a list of languages to use for text detection. In most
|
||||
// cases, leaving this field nil yields the best results since it enables
|
||||
// automatic language detection. For languages based on the Latin alphabet,
|
||||
// setting LanguageHints is not needed. In rare cases, when the language of
|
||||
// the text in the image is known, setting a hint will help get better
|
||||
// results (although it will be a significant hindrance if the hint is
|
||||
// wrong). Text detection returns an error if one or more of the specified
|
||||
// languages is not one of the supported languages (See
|
||||
// https://cloud.google.com/translate/v2/translate-reference#supported_languages).
|
||||
LanguageHints []string
|
||||
}
|
||||
|
||||
// NewImageFromReader reads the bytes of an image from rc, then closes rc.
|
||||
//
|
||||
// You may optionally set Rect and LanguageHints on the returned Image before
|
||||
// using it.
|
||||
func NewImageFromReader(r io.ReadCloser) (*Image, error) {
|
||||
bytes, err := ioutil.ReadAll(r)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := r.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &Image{content: bytes}, nil
|
||||
}
|
||||
|
||||
// NewImageFromURI returns an image that refers to an object in Google Cloud Storage
|
||||
// (when the uri is of the form "gs://BUCKET/OBJECT") or at a public URL.
|
||||
//
|
||||
// You may optionally set Rect and LanguageHints on the returned Image before
|
||||
// using it.
|
||||
func NewImageFromURI(uri string) *Image {
|
||||
return &Image{uri: uri}
|
||||
}
|
||||
|
||||
// toProtos converts the Image to the two underlying API protos it represents,
|
||||
// pb.Image and pb.ImageContext.
|
||||
func (img *Image) toProtos() (*pb.Image, *pb.ImageContext) {
|
||||
var pimg *pb.Image
|
||||
switch {
|
||||
case img.content != nil:
|
||||
pimg = &pb.Image{Content: img.content}
|
||||
case img.uri != "":
|
||||
pimg = &pb.Image{Source: &pb.ImageSource{ImageUri: img.uri}}
|
||||
}
|
||||
|
||||
var pctx *pb.ImageContext
|
||||
if img.Rect != nil || len(img.LanguageHints) > 0 {
|
||||
pctx = &pb.ImageContext{
|
||||
LatLongRect: img.Rect.toProto(),
|
||||
LanguageHints: img.LanguageHints,
|
||||
}
|
||||
}
|
||||
return pimg, pctx
|
||||
}
|
||||
Reference in New Issue
Block a user