All Products
Search
Document Center

Object Storage Service:Persegi panjang dengan sudut membulat

Last Updated:Mar 21, 2026

Operasi rounded-corners membulatkan sudut gambar yang disimpan di OSS.

Parameter

Nama operasi: rounded-corners

ParameterDeskripsiRentang nilai
rRadius sudut, dalam piksel1–4096

Catatan penggunaan

  • Format output menentukan perilaku latar belakang: Format yang mendukung saluran alfa (PNG, WebP, BMP) membuat area di luar sudut membulat menjadi transparan. JPG menjadikannya berwarna putih. Simpan gambar dalam format PNG untuk mendapatkan sudut transparan.

  • Batas radius: Jika radius yang ditentukan melebihi lingkaran dalam terbesar dari gambar sumber, OSS akan menggunakan radius lingkaran dalam tersebut—yaitu setengah dari sisi terpendek gambar.

  • GIF tidak didukung: Operasi rounded-corners tidak dapat diterapkan pada gambar GIF.

Membulatkan sudut gambar dengan izin public-read atau public-read-write

Tambahkan parameter kueri x-oss-process ke URL gambar.

Contoh berikut menggunakan gambar sumber:

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg

Source image

Contoh 1: Membulatkan sudut dengan radius 30 piksel

Parameter:

  • Radius sudut: rounded-corners,r_30

  • Format output: format,jpg (abaikan jika gambar sumber sudah berformat JPG)

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/rounded-corners,r_30
Rounded corners, r=30

Contoh 2: Memotong, membulatkan sudut, dan menyimpan sebagai PNG

Parameter:

  • Potong menjadi 100×100 piksel dari posisi awal default: crop,w_100,h_100

  • Radius sudut: rounded-corners,r_10

  • Format output: format,png

https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/crop,w_100,h_100/rounded-corners,r_10/format,png
Cropped image with rounded corners, PNG

Membulatkan sudut gambar privat

Gunakan SDK OSS atau RESTful API untuk memproses gambar privat.

Gunakan SDK OSS

Semua contoh di bawah menerapkan image/rounded-corners,r_30 menggunakan parameter x-oss-process dan menyimpan hasilnya ke file lokal.

Untuk SDK dalam bahasa lain, lihat Ikhtisar.

Python

Memerlukan OSS SDK untuk Python V2.18.4 atau versi lebih baru.

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

# Baca kredensial dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

key = 'example.jpg'
new_pic = 'D:\\dest.jpg'

# Terapkan sudut membulat dengan radius 30 piksel.
image = 'image/rounded-corners,r_30'
bucket.get_object_to_file(key, new_pic, process=image)

Java

Memerlukan OSS SDK untuk Java V3.17.4 atau versi lebih baru.

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 titik akhir untuk wilayah tempat bucket Anda berada.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        String region = "cn-hangzhou";
        // Baca kredensial dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        String bucketName = "examplebucket";
        String objectName = "example.jpg";
        // Jalur lokal untuk menyimpan gambar yang telah diproses.
        String pathName = "D:\\dest.jpg";

        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // Terapkan sudut membulat dengan radius 30 piksel.
            String image = "image/rounded-corners,r_30";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            ossClient.getObject(request, new File(pathName));
        } catch (OSSException oe) {
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

Go

Memerlukan OSS SDK untuk Go V3.0.2 atau versi lebih baru.

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() {
	// Baca kredensial dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		HandleError(err)
	}

	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)
	}

	bucket, err := client.Bucket("examplebucket")
	if err != nil {
		HandleError(err)
	}

	sourceImageName := "example.jpg"
	targetImageName := "D://dest.jpg"

	// Terapkan sudut membulat dengan radius 30 piksel.
	image := "image/rounded-corners,r_30"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

PHP

Memerlukan OSS SDK untuk PHP V2.7.0 atau versi 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;

// Baca kredensial dari variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
$provider = new EnvironmentVariableCredentialsProvider();
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket = "examplebucket";
$object = "example.jpg";
$download_file = "D:\\dest.jpg";

$config = array(
    "provider" => $provider,
    "endpoint" => $endpoint,
    "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
    "region" => "cn-hangzhou"
);
$ossClient = new OssClient($config);

// Terapkan sudut membulat dengan radius 30 piksel.
$image = "image/rounded-corners,r_30";

$options = array(
    OssClient::OSS_FILE_DOWNLOAD => $download_file,
    OssClient::OSS_PROCESS => $image
);

$ossClient->getObject($bucket, $object, $options);

Gunakan RESTful API

Tambahkan parameter kueri x-oss-process ke permintaan GetObject.

GET /oss.jpg?x-oss-process=image/rounded-corners,r_30 HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q**************:77Dv****************