Tous les produits
Search
Centre de documentation

Object Storage Service:Rectangle aux coins arrondis

Dernière mise à jour :Aug 18, 2026

Arrondissez les coins d'une image rectangulaire stockée dans Object Storage Service (OSS) à l'aide de l'opération rounded-corners. Cette rubrique décrit le paramètre de l'opération rounded-corners et fournit des exemples illustrant comment arrondir les coins d'une image rectangulaire.

Paramètres

Nom de l'opération : rounded-corners

Le tableau suivant décrit le paramètre configurable.

Paramètre

Description

Plage de valeurs

r

Rayon des coins.

[1,4096]

Notes d'utilisation

  • Si le format final (PNG, WebP ou BMP) d'une image prend en charge les canaux alpha, les zones situées en dehors du rectangle aux coins arrondis deviennent transparentes. Si le format final est JPG, ces zones deviennent blanches. Nous vous recommandons d'enregistrer l'image traitée au format PNG.

  • Si le rayon spécifié pour les coins arrondis est supérieur au rayon du plus grand cercle inscrit dans l'image source, le système utilise le rayon du plus grand cercle inscrit de l'image source. Dans ce cas, le rayon des coins équivaut à la moitié du côté le plus court de l'image source.

  • L'opération rounded-corners n'est pas prise en charge pour les images GIF.

Méthodes

Arrondir les coins d'une image en lecture publique ou en lecture-écriture publique

Cette rubrique fournit des exemples montrant comment arrondir les coins d'une image dans le compartiment oss-console-img-demo-cn-hangzhou de la région Chine (Hangzhou). L'image est hébergée à l'URL suivante :

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

Arrondir les coins d'une image privée

Utilisez les SDK OSS et l'API RESTful pour arrondir les coins d'une image privée.

Utiliser les SDK OSS

Le code suivant présente des exemples d'utilisation des SDK OSS pour les langages de programmation courants afin d'arrondir les coins d'une image privée. Pour plus d'informations sur l'arrondi des coins d'images avec d'autres langages, consultez Présentation.

Java

Le SDK OSS pour Java version 3.17.4 ou ultérieure est requis.

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 {
        // In this example, the endpoint of the China (Hangzhou) region is used. Specify your actual endpoint.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Specify the region in which the bucket is located. Example: cn-hangzhou.
        String region = "cn-hangzhou";
        // Obtain access credentials from environment variables. Before you execute the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the name of the bucket. Example: examplebucket.
        String bucketName = "examplebucket";
        // Specify the full path of the object. Do not include the bucket name in the full path.
        String objectName = "example.jpg";
        // Specify the full path of the processed image. Example: D:\\dest.jpg. If a file that has the same name already exists, the downloaded object overwrites the file. Otherwise, the downloaded object is saved in the path.
        String pathName = "D:\\dest.jpg";

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

        try {
            // Set the radius at which the corners are rounded to 30 pixels
            String image = "image/rounded-corners,r_30";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            // Set the name of the processed image to dest.jpg and save it to your local computer.
            // If you specify only the name of the processed image such as dest.jpg without specifying the local path, the processed image is saved to the local path of the project to which the sample program belongs.
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            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("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

Le SDK OSS pour PHP version 2.7.0 ou ultérieure est requis.

<?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;

// Obtain access credentials from environment variables. Before you execute the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
$provider = new EnvironmentVariableCredentialsProvider();
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the name of the bucket. Example: examplebucket.
$bucket= "examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path.
$object = "example.jpg";
// Specify the full path of the processed image. Example: D:\\dest.jpg. If an image that has the same name already exists in the path, the processed image overwrites the image. Otherwise, the processed image is saved in the path.
// If you specify only the name of the processed image such as dest.jpg without specifying the local path, the processed image is saved to the local path of the project to which the sample program belongs.
$download_file = "D:\\dest.jpg";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,        
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        // Specify the ID of the Alibaba Cloud region in which the bucket is located.
        "region" => "cn-hangzhou"
    );
$ossClient = new OssClient($config);

// Set the radius at which the corners are rounded to 30 pixels.
$image = "image/rounded-corners,r_30";

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

// Save the processed image to your local computer.
$ossClient->getObject($bucket, $object, $options);                           

Python

Le SDK OSS pour Python version 2.18.4 ou ultérieure est requis.

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

# Obtain access credentials from environment variables. Before you execute the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
# Specify the actual endpoint.
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Specify the ID of the Alibaba Cloud region in which the bucket is located.
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)
# Specify the name of the image that you want to process. If the image is not stored in the root directory of the bucket, you must include the full path of the image. Example: exampledir/src.gif.
key = 'example.jpg'
# Specify the name of the processed image.
new_pic = 'D:\\dest.jpg'

# Set the radius at which the corners are rounded to 30 pixels.
image = 'image/rounded-corners,r_30'
bucket.get_object_to_file(key, new_pic, process=image)

Go

Le SDK OSS pour Go version 3.0.2 ou ultérieure est requis.

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() {
	// Obtain access credentials from environment variables. Before you execute the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Create an OSSClient instance.
	// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. Specify the actual endpoint.
	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)
	}

	// Specify the name of the bucket in which the source image is stored. Example: examplebucket.
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}

	// Specify the name of the image that you want to process. If the image is not stored in the root directory of the bucket, you must include the full path of the image. Example: exampledir/src.gif.
	sourceImageName := "example.jpg"
	// Specify the name of the processed image.
	targetImageName := "D://dest.jpg"
	// Set the radius at which the corners are rounded to 30 pixels.
	image := "image/rounded-corners,r_30"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

Utiliser l'API RESTful

Si votre activité nécessite un niveau élevé de personnalisation, appelez directement l'API RESTful. Pour plus d'informations, consultez (Recommandé) Inclure une signature V4.

Ajoutez des paramètres pour l'arrondi des coins d'images à l'opération 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: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e