You need to enable JavaScript to run this app.
对象存储

对象存储

复制全文
图片处理
获取图片信息(Go SDK)
复制全文
获取图片信息(Go SDK)

获取图片信息功能可以获取到图片的基本信息,包括图片的长、宽、大小和格式。如果图片包含 Exif 信息,将按照 JSON 格式返回内容。本文介绍如何通过 TOS Go SDK 获取图片信息。

示例代码

以下代码展示如何获取图片信息。

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "github.com/volcengine/ve-tos-golang-sdk/v2/tos"
    "io/ioutil"
)

type ImageInfo struct {
    FileSize struct {
       Value string `json:"value"`
    } `json:"FileSize"`
    Format struct {
       Value string `json:"value"`
    } `json:"Format"`
    ImageHeight struct {
       Value string `json:"value"`
    } `json:"ImageHeight"`
    ImageWidth struct {
       Value string `json:"value"`
    } `json:"ImageWidth"`
}

func checkErr(err error) {
    if err != nil {
       if serverErr, ok := err.(*tos.TosServerError); ok {
          fmt.Println("Error:", serverErr.Error())
          fmt.Println("Request ID:", serverErr.RequestID)
          fmt.Println("Response Status Code:", serverErr.StatusCode)
          fmt.Println("Response Header:", serverErr.Header)
          fmt.Println("Response Err Code:", serverErr.Code)
          fmt.Println("Response Err Msg:", serverErr.Message)
       } else {
          fmt.Println("Error:", err)
       }
       panic(err)
    }
}

func main() {
    var (
       accessKey = os.Getenv("TOS_ACCESS_KEY")
       secretKey = os.Getenv("TOS_SECRET_KEY")
       // Bucket 所在区域对应的 Endpoint,如果以华北2(北京)为例,则 Endpoint 为 https://tos-cn-beijing.volces.com。
       endpoint = "https://tos-cn-beijing.volces.com"
       region   = "cn-beijing"
       // 填写 BucketName
       bucketName = "*** Provide your bucket name ***"

       // 图片名称
       imageKey = "image.png"
       ctx      = context.Background()
    )
    // 初始化客户端
    client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))
    checkErr(err)

    // 请求并增加数据处理
    style := "image/info" /* 获取图片元信息 */
    out, err := client.GetObjectV2(ctx, &tos.GetObjectV2Input{Bucket: bucketName, Key: imageKey, Process: style})
    checkErr(err)
    defer out.Content.Close()
    fmt.Println("ContentType:", out.ContentType)
    info, err := ioutil.ReadAll(out.Content)
    checkErr(err)
    imageInfo := &ImageInfo{}
    err = json.Unmarshal(info, imageInfo)
    checkErr(err)
    fmt.Println("ImageInfo FileSize:", imageInfo.FileSize.Value, " Format:", imageInfo.Format.Value, " ImageHeight:", imageInfo.ImageHeight.Value, " ImageWidth:", imageInfo.ImageWidth.Value)
}

相关文档

关于获取图片信息的详细介绍,请参见获取信息

最近更新时间:2024.02.04 18:31:08
这个页面对您有帮助吗?
有用
有用
无用
无用