All Products
Search
Document Center

Object Storage Service:Nada rata-rata

Last Updated:Jul 06, 2025

Topik ini menjelaskan parameter dan contoh untuk menanyakan nada rata-rata sebuah gambar.

Parameter

Action: average-hue

Informasi nada rata-rata yang dikembalikan menggunakan format berikut: 0xRRGGBB. RR, GG, dan BB ditulis dalam dua digit heksadesimal, di mana RR menunjukkan merah, GG menunjukkan hijau, dan BB menunjukkan biru.

Metode

Tanyakan nada rata-rata gambar public-read atau public-read-write

Anda dapat menambahkan parameter pemrosesan gambar (IMG) ke URL gambar public-read atau public-read-write untuk menanyakan nada rata-ratanya.

Contoh ini menggunakan gambar bernama example.jpg di bucket oss-console-img-demo-cn-hangzhou di wilayah China (Hangzhou). Gambar tersebut di-hosting di URL berikut:

URL berikut digunakan untuk menanyakan nada rata-rata gambar: https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/average-hue.

Nada rata-rata yang dikembalikan di browser adalah 0xbbcd7f, yang menunjukkan nilai warna RGB (187,205,127).

Nada Rata-Rata

Tanyakan nada rata-rata gambar pribadi

Anda dapat menggunakan OSS SDK atau OSS API untuk menanyakan nada rata-rata gambar pribadi.

Gunakan OSS SDK

Kode sampel berikut menunjukkan cara menanyakan nada rata-rata gambar pribadi menggunakan OSS SDK untuk beberapa bahasa pemrograman umum. Untuk informasi lebih lanjut tentang cara melakukannya dengan bahasa pemrograman lainnya, lihat Ikhtisar.

Java

Diperlukan OSS SDK for Java versi 3.17.4 atau yang lebih baru.

import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyuncs.exceptions.ClientException;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class Demo{
    public static void main(String[] args) throws ClientException, ClientException {
        // Tentukan endpoint dari wilayah tempat bucket berada. 
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Tentukan wilayah bucket tempat gambar privat disimpan. Contoh: cn-hangzhou. 
        String region = "cn-hangzhou";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket. 
        String bucketName = "examplebucket";
        // Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg. 
        String key = "example.jpg";

        // Buat instance OSSClient.
        // Panggil metode shutdown untuk melepaskan sumber daya ketika OSSClient tidak lagi digunakan. 
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // Buat instruksi pemrosesan untuk menanyakan nada rata-rata gambar. 
            GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
            getObjectRequest.setProcess("image/average-hue");

            // Gunakan parameter proses metode getObject untuk meneruskan instruksi pemrosesan. 
            OSSObject ossObject = ossClient.getObject(getObjectRequest);

            // Baca dan tampilkan hasil query. 
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = ossObject.getObjectContent().read(buffer)) != -1) {
                baos.write(buffer, 0, bytesRead);
            }
            String imageInfo = baos.toString("UTF-8");
            System.out.println("Informasi Gambar:");
            System.out.println(imageInfo);
        } catch (IOException e) {
            System.out.println("Kesalahan: " + e.getMessage());
        } finally {
            // Matikan instance OSSClient. 
            ossClient.shutdown();
        }
    }
}

PHP

Diperlukan OSS SDK for PHP versi 2.7.0 atau yang lebih baru.

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;

try {
    // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. 
    $provider = new EnvironmentVariableCredentialsProvider(); 
    // Tentukan endpoint dari wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. 
    $endpoint = 'https://oss-cn-hangzhou.aliyuncs.com';
    // Tentukan nama bucket. Contoh: examplebucket. 
    $bucket = 'examplebucket';
    // Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg. 
    $key = 'example.jpg'; 

    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // Tentukan ID wilayah Alibaba Cloud tempat bucket berada. 
        "region" => "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
  // Buat instruksi pemrosesan untuk menanyakan nada rata-rata gambar. 
  $options[$ossClient::OSS_PROCESS] = "image/average-hue";
  $result = $ossClient->getObject($bucket,$key,$options);
  var_dump($result);
} catch (OssException $e) {
  printf($e->getMessage() . "\n");
  return;
}

Python

Diperlukan OSS SDK for Python versi 2.18.4 atau yang lebih baru.

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Tentukan endpoint dari wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Tentukan ID wilayah Alibaba Cloud tempat bucket berada. 
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

# Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg. 
key = 'example.jpg'

# Buat instruksi pemrosesan untuk menanyakan nada rata-rata gambar. 
process = 'image/average-hue'

try:
    # Gunakan metode get_object dan teruskan instruksi pemrosesan dengan menggunakan parameter proses. 
    result = bucket.get_object(key, process=process)

    # Baca dan tampilkan hasil query. 
    image_info = result.read().decode('utf-8')
    print("Image Info:")
    print(image_info)
except oss2.exceptions.OssError as e:
    print("Error:", e)

Go

Diperlukan OSS SDK for Go versi 3.0.2 atau yang lebih baru.

package main

import (
	"fmt"
	"io"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Dapatkan kredensial akses sementara dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. 
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Buat instance OSSClient. 
	// Tentukan endpoint dari wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Tentukan endpoint aktual Anda. 
	// Tentukan ID wilayah Alibaba Cloud tempat bucket berada. Contoh: cn-hangzhou. 
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Tentukan nama bucket. Contoh: examplebucket. 
	bucketName := "examplebucket"

	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Jika gambar disimpan di direktori root bucket, masukkan nama gambar. Jika gambar tidak disimpan di direktori root bucket, Anda harus menentukan jalur lengkap gambar. Contoh: exampledir/example.jpg. 
	// Gunakan metode oss.Process untuk meneruskan instruksi pemrosesan untuk menanyakan nada rata-rata gambar. 
	body, err := bucket.GetObject("example.jpg", oss.Process("image/average-hue"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	defer body.Close()

	data, err := io.ReadAll(body)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Println("data:", string(data))
}

Gunakan RESTful API

Jika bisnis Anda memerlukan tingkat penyesuaian yang tinggi, Anda dapat langsung memanggil RESTful API. Untuk memanggil API secara langsung, Anda harus menyertakan perhitungan tanda tangan dalam kode Anda. Untuk informasi lebih lanjut, lihat (Direkomendasikan) Sertakan Tanda Tangan V4.

Anda dapat menentukan parameter nada rata-rata dalam operasi GetObject untuk menanyakan nada rata-rata sebuah gambar.

GET /oss.jpg?x-oss-process=image/average-hue HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e