本文整理汇总了Golang中github.com/rwcarlsen/goexif/tiff.Tag类的典型用法代码示例。如果您正苦于以下问题:Golang Tag类的具体用法?Golang Tag怎么用?Golang Tag使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Tag类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Walk
func (w *walker) Walk(field FieldName, tag *tiff.Tag) error {
// this needs to be commented out when regenerating regress expected vals
if v := regressExpected[w.picName][field]; v != tag.String() {
w.t.Errorf("pic %v: expected '%v' got '%v'", w.picName, v, tag.String())
}
return nil
}
开发者ID:szwork2013,项目名称:gopixelrelay,代码行数:7,代码来源:exif_test.go
示例2: Walk
func (w *walker) Walk(field FieldName, tag *tiff.Tag) error {
// this needs to be commented out when regenerating regress expected vals
pic := regressExpected[w.picName]
if pic == nil {
w.t.Errorf(" regression data not found")
return nil
}
exp, ok := pic[field]
if !ok {
w.t.Errorf(" regression data does not have field %v", field)
return nil
}
s := tag.String()
if tag.Count == 1 && s != "\"\"" {
s = fmt.Sprintf("[%s]", s)
}
got := tag.String()
if exp != got {
fmt.Println("s: ", s)
fmt.Printf("len(s)=%v\n", len(s))
w.t.Errorf(" field %v bad tag: expected '%s', got '%s'", field, exp, got)
}
return nil
}
开发者ID:Rudloff,项目名称:platform,代码行数:27,代码来源:exif_test.go
示例3: tagFormatString
func tagFormatString(tag *tiff.Tag) string {
switch tag.Format() {
case tiff.IntVal:
return "int"
case tiff.RatVal:
return "rat"
case tiff.FloatVal:
return "float"
case tiff.StringVal:
return "string"
}
return ""
}
开发者ID:camlistore,项目名称:camlistore,代码行数:13,代码来源:receive.go
示例4: parse3Rat2
func parse3Rat2(tag *tiff.Tag) ([3]float64, error) {
v := [3]float64{}
for i := range v {
num, den, err := tag.Rat2(i)
if err != nil {
return v, err
}
v[i] = ratFloat(num, den)
if tag.Count < uint32(i+2) {
break
}
}
return v, nil
}
开发者ID:rfistman,项目名称:camlistore,代码行数:14,代码来源:exif.go
示例5: FormatGPS
// Get values written as big.Rat returns the result in a more sensible formatting.
func FormatGPS(t *tiff.Tag) float32 {
Dec := make([]float32, 3)
for count := 0; count < 3; count++ {
Numer, Denom, _ := t.Rat2(count)
// Add error checking somewhere?
Dec[count] = float32(Numer) / float32(Denom)
}
DecGPS := float32(Dec[0]) + float32(Dec[1]/60) + float32(Dec[2]/3600)
return DecGPS
//DecGPS := Hours + Minutes/float32(60) + Seconds/float32(3600)
}
开发者ID:kurtcoke,项目名称:goexifgps,代码行数:16,代码来源:format.go
示例6: Walk
// Walk implements exif.Walker interface and initializes the Photograph
// from the EXIF data.
func (p *Photograph) Walk(field exif.FieldName, tag *tiff.Tag) error {
logging.Log.Info("%v: %v", field, tag)
p.ExifMap[field] = tag
if "DateTime" == field {
const timeFormat = "2006:01:02 15:04:05"
s, err := tag.StringVal()
if err != nil {
return err
}
p.Time, err = time.Parse(timeFormat, s)
if err != nil {
return err
}
}
return nil
}
开发者ID:hauva69,项目名称:photowalk,代码行数:18,代码来源:photograph.go
示例7: tagDegrees
func tagDegrees(tag *tiff.Tag) (float64, error) {
switch tag.Format() {
case tiff.RatVal:
// The usual case, according to the Exif spec
// (http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf,
// sec 4.6.6, p. 52 et seq.)
v, err := parse3Rat2(tag)
if err != nil {
return 0.0, err
}
return v[0] + v[1]/60 + v[2]/3600.0, nil
case tiff.StringVal:
// Encountered this weird case with a panorama picture taken with a HTC phone
s, err := tag.StringVal()
if err != nil {
return 0.0, err
}
return parseTagDegreesString(s)
default:
// don't know how to parse value, give up
return 0.0, fmt.Errorf("Malformed EXIF Tag Degrees")
}
}
开发者ID:rfistman,项目名称:camlistore,代码行数:23,代码来源:exif.go
示例8: storeImage
func storeImage(rw http.ResponseWriter, req *http.Request) {
// Appengine
var c appengine.Context
// Google Cloud Storage authentication
var cc gcscontext.Context
// Google Cloud Storage bucket name
var bucketName string = ""
// Google Cloud Storage client
var client *storage.Client
// Google Cloud Storage bucket
var bucketHandle *storage.BucketHandle
// User uploaded image file name
var fileName string = uuid.New()
// Transform user uploaded image to a thumbnail file name
var fileNameThumbnail string = uuid.New()
// User uploaded image file type
var contentType string = ""
// User uploaded image file raw data
var b []byte
// Google Cloud Storage file writer
var wc *storage.Writer = nil
// Error
var err error = nil
// Result, 0: success, 1: failed
var r int = http.StatusCreated
// Set response in the end
defer func() {
// Return status. WriteHeader() must be called before call to Write
if r == http.StatusCreated {
// Changing the header after a call to WriteHeader (or Write) has no effect.
// rw.Header().Set("Location", req.URL.String()+"/"+cKey.Encode())
rw.Header().Set("Location", "http://"+bucketName+".storage.googleapis.com/"+fileName)
rw.Header().Set("X-Thumbnail", "http://"+bucketName+".storage.googleapis.com/"+fileNameThumbnail)
rw.WriteHeader(r)
} else {
http.Error(rw, http.StatusText(r), r)
}
}()
// To log information in Google APP Engine console
c = appengine.NewContext(req)
// Get data from body
b, err = ioutil.ReadAll(req.Body)
if err != nil {
c.Errorf("%s in reading body", err)
r = http.StatusInternalServerError
return
}
c.Infof("Body length %d bytes, read %d bytes", req.ContentLength, len(b))
// Determine filename extension from content type
contentType = req.Header["Content-Type"][0]
switch contentType {
case "image/jpeg":
fileName += ".jpg"
fileNameThumbnail += ".jpg"
default:
c.Errorf("Unknown or unsupported content type '%s'. Valid: image/jpeg", contentType)
r = http.StatusBadRequest
return
}
c.Infof("Content type %s is received, %s is detected.", contentType, http.DetectContentType(b))
// Prepare Google Cloud Storage authentication
cc = gcsappengine.NewContext(req)
if client, err = storage.NewClient(cc); err != nil {
c.Errorf("%s in initializing a GCS client", err)
r = http.StatusInternalServerError
return
}
defer client.Close()
// Get default bucket
if bucketName, err = gcsfile.DefaultBucketName(cc); err != nil {
c.Errorf("%s in getting default GCS bucket name", err)
r = http.StatusInternalServerError
return
}
bucketHandle = client.Bucket(bucketName)
c.Infof("APP Engine Version: %s", gcsappengine.VersionID(cc))
c.Infof("Using bucket name: %s", bucketName)
// Change default object ACLs
if err = bucketHandle.DefaultObjectACL().Set(cc, storage.AllUsers, storage.RoleReader); err != nil {
c.Errorf("%v in saving default object ACL rule for bucket %q", err, bucketName)
r = http.StatusInternalServerError
return
}
// Store rotated image in Google Cloud Storage
var in *bytes.Reader = bytes.NewReader(b)
var x *exif.Exif = nil
var orientation *tiff.Tag = nil
var beforeImage image.Image
var afterImage *image.NRGBA = nil
// Read EXIF
if _, err = in.Seek(0, 0); err != nil {
//.........这里部分代码省略.........
开发者ID:junglesung,项目名称:Aliza,代码行数:101,代码来源:images.go
示例9: Walk
func (_ Walker) Walk(name exif.FieldName, tag *tiff.Tag) error {
data, _ := tag.MarshalJSON()
fmt.Printf(" %v: %v\n", name, string(data))
return nil
}
开发者ID:rfistman,项目名称:camlistore,代码行数:5,代码来源:main.go
示例10: Walk
func (tw *tagsWalker) Walk(name exif.FieldName, tag *tiff.Tag) error {
tw.v[string(name)] = tag.String()
return nil
}
开发者ID:xiam,项目名称:scavenger,代码行数:4,代码来源:main.go
示例11: Walk
// Implements the Walk function to be a Walker
func (ew *ExifHandler) Walk(name exif.FieldName, tag *tiff.Tag) error {
ew.tags[string(name)] = tag.String()
return nil
}
开发者ID:pombredanne,项目名称:crate-1,代码行数:5,代码来源:jpeg.go
注:本文中的github.com/rwcarlsen/goexif/tiff.Tag类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论