Tous les produits
Search
Centre de documentation

Object Storage Service:Conversion du format d'image

Dernière mise à jour :Sep 24, 2026

Convertissez à la volée le format des images stockées dans Object Storage Service (OSS) en ajoutant simplement des paramètres à l'URL de l'image, sans traitement hors ligne. Cette rubrique décrit les paramètres et fournit des exemples de conversion de format d'image.

Cas d'utilisation

  • Adaptation aux appareils et aux plateformes : convertissez les images dans différents formats pour garantir la compatibilité et un affichage optimal sur divers appareils.

  • Réduction des coûts de stockage : certains formats d'image, tels que WebP, offrent des tailles de fichier plus réduites tout en maintenant la qualité visuelle. Convertissez vos images vers ces formats pour diminuer l'utilisation du stockage et réduire les coûts associés.

  • Normalisation des formats de ressources : convertissez toutes les images téléchargées vers un format unique et standard (tel que WebP) afin de simplifier la gestion des ressources et les pipelines de diffusion, une pratique courante dans les applications de commerce électronique, les réseaux sociaux et les sites d'actualités.

Notes d'utilisation

  • Si une requête de traitement d'image inclut une opération de mise à l'échelle, placez le paramètre de conversion de format à la fin des paramètres de traitement. Par exemple, image/resize,w_100/format,jpg.

  • Si une requête de traitement d'image inclut à la fois des opérations de mise à l'échelle et d'ajout de filigrane, ajoutez le paramètre de conversion de format après le paramètre de mise à l'échelle. Par exemple, image/resize,w_100/format,jpg/watermark,....

  • Lorsque vous convertissez une image sans canal alpha vers un format qui en prend en charge un (tel que PNG ou WebP), les zones transparentes résultantes sont remplies par défaut avec du blanc. Notez qu'OSS ne permet pas de remplir la zone transparente avec du noir.

Méthodes

Traitez les images via des paramètres d'URL, des SDK ou des API REST. Le traitement basé sur l'URL est uniquement disponible pour les images accessibles publiquement ; pour les images privées, utilisez un SDK ou appelez l'API directement. Pour plus d'informations, consultez Méthodes de traitement d'image.

Images en lecture publique

Pour les images en lecture publique, ajoutez directement les paramètres de traitement à l'URL de l'image. L'image traitée peut ensuite être consultée à l'aide de l'URL générée.

Pour traiter une image en lecture publique, ajoutez le paramètre ?x-oss-process=image/format,parameter_value à l'URL de l'image. Remplacez parameter_value par les paramètres et valeurs requis. Vous pouvez également combiner plusieurs paramètres.

URL de l'image source

URL de l'image avec paramètres de traitement

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/format,png

Images privées

Convertissez le format des images privées à l'aide des SDK Alibaba Cloud ou des API REST.

Utiliser les SDK Alibaba Cloud

Les sections suivantes fournissent des exemples de code montrant comment convertir les formats d'image avec les SDK courants. Pour des exemples de code utilisant d'autres SDK, consultez Présentation des SDK.

Java

Le SDK 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 {
        // The endpoint of the China (Hangzhou) region is used as an example. Specify the actual endpoint.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Specify the region that corresponds to the endpoint, for example, cn-hangzhou.
        String region = "cn-hangzhou";
        // Obtain access credentials from environment variables. Before you run this code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the bucket name, for example, examplebucket.
        String bucketName = "examplebucket";
        // Specify the full path of the object. The full path cannot contain the bucket name.
        String objectName = "src.gif";
        // Specify the full path of the local file, for example, D:\\dest.jpg. If the specified local file exists, it is overwritten. If the file does not exist, it is created.
        String pathName = "D:\\dest.png";

        // Create an OSSClient instance.
        // When the OSSClient instance is no longer used, call the shutdown method to release the resources.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            // Convert the source image to the PNG format.
            String image = "image/format,png";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            // Name the processed image dest.png and save it to a local path.
            // If you specify only the file name, such as dest.png, without a local path, the file is saved to the project's corresponding local path by default.
            ossClient.getObject(request, new File("D:\\dest.png"));
        } 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 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 run this code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
$provider = new EnvironmentVariableCredentialsProvider();
// Set yourEndpoint to the endpoint of the region where the bucket is located. The endpoint of the China (Hangzhou) region is used as an example: https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the bucket name, for example, examplebucket.
$bucket= "examplebucket";
// Specify the full path of the object. The full path cannot contain the bucket name.
$object = "src.gif";
// Specify the full path of the local file, for example, D:\\dest.png. If the specified local file exists, it is overwritten. If the file does not exist, it is created.
// If you specify only the file name, such as dest.png, without a local path, the file is saved to the project's corresponding local path by default.
$download_file = "D:\\dest.png";

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

// Convert the source image to the PNG format.
$image = "image/format,png";

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

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

Python

Le SDK 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 run this code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Set the endpoint to your bucket's endpoint. The endpoint of the China (Hangzhou) region is used as an example: https://oss-cn-hangzhou.aliyuncs.com.
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Specify the general-purpose region ID of Alibaba Cloud.
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)
# Specify the name of the source image. If the image is not in the root directory of the bucket, you must specify the full path, for example, exampledir/src.gif.
key = 'src.gif'
# Specify the name of the processed image.
new_pic = 'D:\\dest.png'

# Convert the source image to the PNG format.
image = 'image/format,png'
bucket.get_object_to_file(key, new_pic, process=image)

Go

Le SDK 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 run this 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.
	// Set yourEndpoint to the endpoint of the bucket. The endpoint of the China (Hangzhou) region is used as an example: https://oss-cn-hangzhou.aliyuncs.com. Specify the endpoint based on your region.
	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 where the source image is stored, for example, examplebucket.
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		HandleError(err)
	}

	// Specify the name of the source image. If the image is not in the root directory of the bucket, you must specify the full path, for example, exampledir/src.gif.
	sourceImageName := "src.gif"
	// Specify the name of the processed image.
	targetImageName := "D://dest.png"
	// Convert the source image to the PNG format.
	image := "image/format,png"
	err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

Utiliser une API REST

Si votre activité nécessite un niveau élevé de personnalisation, appelez directement les API RESTful. Pour appeler une API directement, vous devez inclure le calcul de signature dans votre code. Pour plus d'informations sur le calcul de l'en-tête Authorization, consultez Signature Version 4 (recommandée).

Spécifiez les paramètres de format dans l'appel GetObject pour traiter une image. Pour plus d'informations, consultez GetObject.

GET /oss.jpg?x-oss-process=image/format,png HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: AuthorizationValue

Paramètres

Action : format

Valeur

Description

jpg

Enregistre l'image source au format JPG.

Important

Vous ne pouvez pas enregistrer une image au format HEIC possédant un canal alpha au format JPG.

png

Enregistre l'image source au format PNG.

webp

Enregistre l'image source au format WebP.

bmp

Enregistre l'image source au format BMP.

gif

Si l'image source est au format GIF, elle est enregistrée au format GIF. Si l'image source n'est pas au format GIF, elle est enregistrée dans son format d'origine.

tiff

Enregistre l'image source au format TIFF.

heic

Enregistre l'image source au format HEIF.

Remarque

Le format HEIF est pris en charge uniquement dans les régions Chine (Zhangjiakou), Chine (Shanghai), Chine (Shenzhen), Chine (Hangzhou), Chine (Pékin) et Singapour.

avif

Enregistre l'image source au format AVIF.

Remarque

Le format AVIF est pris en charge uniquement dans les régions Chine (Zhangjiakou), Chine (Shanghai), Chine (Shenzhen), Chine (Hangzhou), Chine (Pékin) et Singapour.

Exemples

Convertir une image source au format PNG

Les paramètres de traitement sont les suivants :

  • Convertir l'image au format PNG : format,png

Pour les images en lecture-écriture publique, ajoutez ?x-oss-process=image/format,png à la fin de l'URL de l'image. OSS traite alors l'image en temps réel et renvoie le résultat. Si vous souhaitez convertir le format d'une image privée, consultez Images privées.

Exemple

L'exemple suivant montre comment convertir une image GIF au format PNG en ajoutant le paramètre ?x-oss-process=image/format,png à l'URL de l'image source :

Image source

Image traitée

gif

png

URL de l'image source :

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif

URL de traitement de l'image : https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/format,png

Convertir une image source au format JPG et activer l'affichage progressif

Les paramètres de traitement sont les suivants :

  • Convertir l'image au format JPG : format,jpg

  • Activer l'affichage progressif de l'image : interlace,1

Pour les images en lecture-écriture publique, ajoutez ?x-oss-process=image/interlace,1/format,jpg à la fin de l'URL de l'image. OSS traite alors l'image en temps réel et renvoie le résultat. Si vous souhaitez convertir le format d'une image privée, consultez Images privées.

Exemple

L'exemple suivant montre comment convertir une image GIF au format JPG et activer l'affichage progressif en ajoutant le paramètre ?x-oss-process=image/interlace,1/format,jpg à l'URL de l'image source :

Image source

Image traitée

gif

image

URL de l'image source :

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif

URL de traitement de l'image : https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/interlace,1/format,jpg

Convertir une image source au format WebP et la redimensionner

Les paramètres de traitement sont les suivants :

  • Convertir l'image au format WebP : format,webp

  • Redimensionner l'image à une largeur de 200 px : resize,w_200

Pour les images en lecture-écriture publique, ajoutez ?x-oss-process=image/resize,w_200/format,webp à la fin de l'URL de l'image. OSS traite alors l'image en temps réel et renvoie le résultat. Si vous souhaitez convertir le format d'une image privée, consultez Images privées.

Exemple

L'exemple suivant montre comment redimensionner une image source GIF à une largeur de 200 px et la convertir au format WebP en ajoutant le paramètre x-oss-process=image/resize,w_200/format,webp à l'URL de l'image source :

Image source

Image traitée

gif

URL de l'image source :

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif

URL de traitement de l'image :

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example.gif?x-oss-process=image/resize,w_200/format,webp

FAQ

Comment contrôler la qualité de l'image convertie ?

Chaque format d'image possède un paramètre de qualité par défaut. Si vous ne spécifiez pas le paramètre de qualité lors de la conversion de format, OSS appliquera cette valeur par défaut.

Pour améliorer la qualité de l'image, définissez la qualité sur 100 lors de la conversion de format, par exemple en utilisant ?x-oss-process=image/quality,Q_100. Pour plus d'informations sur la conversion de qualité, consultez Conversion de qualité.

La conversion de format d'image affecte-t-elle la vitesse de chargement des pages ?

La conversion de format d'image s'effectue à la volée. Bien que la première requête puisse subir un léger délai de traitement, le format d'image résultant, plus petit et plus efficace (tel que WebP), conduit généralement à des temps de chargement ultérieurs plus rapides et améliore les performances globales de la page.

Puis-je convertir une image GIF au format MP4 ?

Pour convertir une image GIF au format MP4, soumettez un ticket pour demander cette fonctionnalité.