Gambar di halaman web umumnya disajikan dalam dua mode: penampilan standar dan penampilan bertahap. Penampilan standar memuat gambar baris demi baris dari atas ke bawah. Penampilan bertahap menampilkan versi resolusi rendah yang secara bertahap menjadi lebih jelas seiring dimuatnya data tambahan. Untuk meningkatkan pengalaman pengguna selama performa jaringan buruk atau dengan gambar besar, Anda dapat mengonfigurasi gambar yang disimpan di Object Storage Service (OSS) untuk penampilan bertahap.
Parameter
Aksi: interlace
Tabel berikut menjelaskan parameter dan nilainya.
Parameter | Deskripsi | Nilai |
[nilai] | Menentukan apakah akan menampilkan gambar dalam mode bertahap. |
|
Metode
Anda dapat menggunakan URL objek, OSS SDK, atau operasi API OSS untuk mengonfigurasi parameter pemrosesan gambar (IMG). URL objek hanya dapat digunakan untuk memproses gambar yang dapat diakses publik. Jika ingin mengonfigurasi parameter IMG untuk gambar pribadi, gunakan OSS SDK atau panggil operasi API. Untuk informasi lebih lanjut, lihat Mode implementasi IMG.
Konfigurasikan gambar public-read atau public-read-write untuk penampilan bertahap
Contoh berikut menunjukkan cara menampilkan gambar example.jpg dan panda.png yang disimpan di bucket dengan domain bucket publik https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com secara bertahap.
Ubah ukuran gambar example.jpg menjadi lebar 200 px dan atur untuk penampilan bertahap
Konfigurasikan parameter berikut:
Ubah ukuran gambar sumber menjadi lebar 200 piksel: resize,w_200
Atur gambar untuk penampilan bertahap:
interlace,1
URL yang digunakan untuk menerapkan parameter di atas adalah https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_200/interlace,1.

Konversikan gambar panda.png ke JPG dan atur gambar JPG untuk penampilan bertahap
Konfigurasikan parameter berikut:
Konversikan format gambar sumber ke JPG:
format,jpgAtur gambar untuk penampilan bertahap:
interlace,1
URL yang digunakan untuk menerapkan parameter di atas adalah https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/panda.png?x-oss-process=image/format,jpg/interlace,1.
Atur gambar pribadi untuk penampilan bertahap
Anda dapat menggunakan OSS SDK dan API OSS untuk mengatur gambar pribadi untuk penampilan bertahap.
Gunakan OSS SDK
Kode contoh berikut mengonfigurasi penampilan bertahap untuk gambar pribadi dengan menggunakan OSS SDK untuk bahasa pemrograman umum. Untuk informasi tentang cara mengonfigurasi penampilan bertahap dengan menggunakan OSS SDK untuk bahasa pemrograman lainnya, lihat Ikhtisar.
Java
OSS SDK for Java V3.17.4 atau lebih baru diperlukan.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;
public class Demo {
public static void main(String[] args) throws Throwable {
// Tentukan endpoint wilayah. Dalam contoh ini, endpoint wilayah China (Hangzhou) digunakan. Tentukan endpoint aktual Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan wilayah tempat bucket berada. Contoh: cn-hangzhou.
String region = "cn-hangzhou";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tentukan jalur lengkap objek yang ingin Anda proses. Jangan masukkan nama bucket dalam jalur lengkap.
String objectName = "example.jpg";
// Tentukan jalur lengkap file lokal. Contoh: D:\\dest.jpg. Jika gambar dengan nama yang sama sudah ada di jalur tersebut, gambar yang diproses akan menimpa gambar tersebut. Jika tidak, gambar yang diproses akan disimpan di jalur tersebut.
String pathName = "D:\\dest.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 {
// Ubah ukuran gambar menjadi lebar 200 piksel dan atur untuk ditampilkan secara bertahap.
String image = "image/resize,w_200/interlace,1";
GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
request.setProcess(image);
// Tetapkan nama gambar yang diproses menjadi dest.jpg dan simpan ke komputer lokal Anda.
// Jika Anda hanya menentukan nama gambar yang diproses seperti dest.jpg tanpa menentukan jalur lokal gambar yang diproses, gambar yang diproses akan disimpan ke jalur lokal proyek tempat program sampel milik.
ossClient.getObject(request, new File("D:\\dest.jpg"));
} catch (OSSException oe) {
System.out.println("Tangkap OSSException, yang berarti permintaan Anda berhasil mencapai OSS, "
+ "tetapi ditolak dengan respons kesalahan karena alasan tertentu.");
System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
System.out.println("Kode Kesalahan:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("ID Host:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Tangkap ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Kesalahan:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}PHP
OSS SDK for PHP V2.7.0 atau lebih baru diperlukan.
<?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;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
$provider = new EnvironmentVariableCredentialsProvider();
// Tentukan endpoint 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";
// Tentukan jalur lengkap objek yang ingin Anda proses. Jangan sertakan nama bucket dalam jalur lengkap.
$object = "example.jpg";
// Tentukan jalur lengkap file lokal. Contoh: D:\\dest.jpg. Jika gambar dengan nama yang sama sudah ada di jalur tersebut, gambar yang diproses akan menimpa gambar tersebut. Jika tidak, gambar yang diproses akan disimpan di jalur tersebut.
// Jika Anda hanya menentukan nama gambar yang diproses seperti dest.jpg tanpa menentukan jalur lokal, gambar yang diproses akan disimpan ke jalur lokal proyek tempat program contoh milik.
$download_file = "D:\\dest.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);
// Ubah ukuran gambar menjadi lebar 200 piksel dan atur untuk ditampilkan secara bertahap.
$image = "image/resize,w_200/interlace,1";
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => $image);
// Simpan gambar yang diproses ke komputer lokal Anda.
$ossClient->getObject($bucket, $object, $options); Python
OSS SDK for Python V2.18.4 atau lebih baru diperlukan.
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
# Tentukan endpoint 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)
# Tentukan nama gambar yang ingin Anda proses. Jika gambar sumber tidak disimpan di direktori root bucket, Anda harus menyertakan jalur lengkap gambar. Contoh: exampledir/src.gif.
key = 'example.jpg'
# Tentukan nama gambar yang diproses.
new_pic = 'D:\\dest.jpg'
# Ubah ukuran gambar menjadi lebar 200 piksel dan atur untuk ditampilkan secara bertahap.
image = 'image/resize,w_200/interlace,1'
bucket.get_object_to_file(key, new_pic, process=image)Go
OSS SDK for Go V3.0.2 atau lebih baru diperlukan.
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func HandleError(err error) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, 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 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.
client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider), oss.AuthVersion(oss.AuthV4), oss.Region("cn-hangzhou"))
if err != nil {
HandleError(err)
}
// Tentukan nama bucket tempat gambar sumber disimpan. Contoh: examplebucket.
bucketName := "examplebucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
HandleError(err)
}
// Tentukan nama gambar yang ingin Anda proses. Jika gambar tidak disimpan di direktori root bucket, Anda harus menyertakan jalur lengkap gambar. Contoh: exampledir/src.gif.
sourceImageName := "example.jpg"
// Tentukan nama gambar yang diproses.
targetImageName := "D://dest.jpg"
// Ubah ukuran gambar menjadi lebar 200 piksel dan atur untuk ditampilkan secara bertahap.
image := "image/resize,w_200/interlace,1"
err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
if err != nil {
HandleError(err)
}
}Gunakan RESTful API
Jika bisnis Anda memerlukan tingkat penyesuaian yang tinggi, Anda dapat langsung memanggil API RESTful OSS. Untuk memanggil API secara langsung, Anda perlu menyertakan perhitungan tanda tangan dalam kode Anda. Untuk informasi lebih lanjut, lihat (Direkomendasikan) Sertakan tanda tangan V4.
Anda dapat mengatur mode penampilan untuk gambar dengan menyertakan parameter interlace dalam permintaan GetObject.
GET /oss.jpg?x-oss-process=image/format,jpg/interlace,1 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