All Products
Search
Document Center

Object Storage Service:Blur

Last Updated:Mar 21, 2026

Gunakan pemrosesan gambar OSS (IMG) untuk menerapkan efek blur Gaussian pada gambar yang disimpan di Object Storage Service (OSS). Anda dapat mengaburkan seluruh gambar atau secara otomatis menargetkan wajah yang terdeteksi—berguna untuk perlindungan privasi, komposit visual, dan peningkatan kualitas tampilan.

Kasus penggunaan

  • Perlindungan privasi: Sembunyikan detail sensitif seperti nomor plat kendaraan atau wajah sebelum memublikasikan gambar.

  • Komposit gambar berlapis: Haluskan tepi antar lapisan dalam komposit multi-lapis untuk hasil yang lebih rapi.

  • Tampilan resolusi rendah: Kurangi artefak pikselasi saat gambar beresolusi rendah ditampilkan di layar definisi tinggi.

Parameter

Action: blur

ParameterWajibDeskripsiNilai valid
rYaRadius blur. Nilai yang lebih tinggi menghasilkan efek blur yang lebih kuat.1–50
sYaDeviasi standar distribusi Gaussian. Nilai yang lebih tinggi menghasilkan efek blur yang lebih kuat.1–50
gTidakCakupan blur. Membatasi efek blur hanya pada wajah yang terdeteksi, bukan seluruh gambar.face (hanya wajah terbesar), faces (semua wajah yang terdeteksi)
pTidakUbah ukuran area yang dikaburkan sebagai persentase dari ukuran wajah yang terdeteksi. Hanya berlaku ketika parameter g diatur.1–200 (%)
Parameter g mengharuskan bucket terikat ke proyek Intelligent Media Management (IMM). Akses anonim tidak didukung saat menggunakan g. Anda juga harus memiliki izin IMM yang diperlukan di OSS. Untuk petunjuk penyiapan, lihat Get started dan Permissions.

Kaburkan gambar

Kaburkan gambar publik menggunakan URL

Untuk gambar dengan daftar kontrol akses (ACL) baca-publik atau baca-tulis publik, tambahkan parameter IMG langsung ke URL objek. OSS memproses gambar secara real time dan mengembalikan hasilnya—tanpa perlu panggilan SDK atau API.

Tambahkan ?x-oss-process=image/blur,r_10,s_10 ke URL objek:

https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image/blur,r_10,s_10
Gambar sumberGambar hasil proses
原图模糊1
https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpghttps://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image/blur,r_10,s_10

Kaburkan gambar privat menggunakan SDK OSS

Contoh di bawah ini menggunakan image/blur,r_10,s_10 untuk mengaburkan seluruh gambar dan menyimpan hasilnya ke file lokal. Atur OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET sebagai variabel lingkungan sebelum menjalankan kode.

Untuk bahasa lainnya, lihat Overview.

Java

Diperlukan Java SDK versi 3.17.4 atau 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 {
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        String region = "cn-hangzhou";
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        String bucketName = "examplebucket";
        String objectName = "src.jpg";

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

        try {
            // Radius blur: 10, deviasi standar: 10
            String image = "image/blur,r_10,s_10";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } 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();
            }
        }
    }
}

PHP

Diperlukan PHP SDK versi 2.7.0 atau 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;

$provider = new EnvironmentVariableCredentialsProvider();
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "examplebucket";
$object = "src.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);

// Radius blur: 10, deviasi standar: 10
$image = "image/blur,r_10,s_10";

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

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

Python

Diperlukan Python SDK versi 2.18.4 atau lebih baru.

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

auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

key = 'source-example.jpg'
local_file_name = 'D:\\target-example.jpg'

# Memburamkan wajah terbesar: radius 25, deviasi standar 50
process = 'image/blur,g_face,r_25,s_50'
result = bucket.get_object_to_file(key, local_file_name, process=process)

Go

Diperlukan Go SDK versi 3.0.2 atau 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() {
	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)
	}

	// Radius blur: 10, deviasi standar: 10
	image := "image/blur,r_10,s_10"
	err = bucket.GetObjectToFile("src.jpg", "D://dest.jpg", oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

Kaburkan gambar privat menggunakan API OSS

Untuk integrasi kustom yang memanggil REST API secara langsung, sertakan parameter blur dalam permintaan GetObject. Tandatangani permintaan menggunakan signature V4—lihat (Recommended) Include a V4 signature in the Authorization header.

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

Untuk spesifikasi lengkap GetObject, lihat GetObject.

Untuk opsi implementasi lainnya, lihat IMG implementation modes.

Kaburkan wajah dalam gambar

Pengaburan wajah menggunakan integrasi OSS dengan IMM untuk mendeteksi wajah secara otomatis. Sebelum menggunakan parameter g, ikat bucket ke proyek IMM—lihat Get started atau AttachOSSBucket.

Contoh di bawah ini menggunakan SDK OSS. Untuk pendekatan API, gunakan nilai x-oss-process yang sama dalam permintaan GetObject (lihat pola pada bagian sebelumnya).

Kaburkan wajah terbesar

Gunakan g_face untuk mendeteksi dan mengaburkan wajah terbesar dalam gambar.

String parameter: image/blur,g_face,r_25,s_50

Gambar sumberGambar hasil proses
原图image

Kode contoh

Java

Diperlukan Java SDK versi 3.17.4 atau 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 {
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        String region = "cn-hangzhou";
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        String bucketName = "examplebucket";
        String objectName = "example.jpg";

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

        try {
            // Buramkan semua wajah: radius 25, deviasi standar 50
            String image = "image/blur,g_faces,r_25,s_50";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } 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();
            }
        }
    }
}

PHP

Diperlukan PHP SDK versi 2.7.0 atau 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;

$provider = new EnvironmentVariableCredentialsProvider();
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "examplebucket";
$object = "src.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);

// Kaburkan semua wajah: jari-jari 25, deviasi standar 50
$image = "image/blur,g_faces,r_25,s_50";

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

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

Python

Diperlukan Python SDK versi 2.18.4 atau lebih baru.

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

auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

key = 'source-example.jpg'
local_file_name = 'D:\\target-example.jpg'

# Kaburkan wajah terbesar: radius 25, deviasi standar 50
process = 'image/blur,g_face,r_25,s_50'
result = bucket.get_object_to_file(key, local_file_name, process=process)

Go

Diperlukan Go SDK versi 3.0.2 atau 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() {
	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)
	}

	// Memburamkan semua wajah: jari-jari 25, deviasi standar 50
	image := "image/blur,g_faces,r_25,s_50"
	err = bucket.GetObjectToFile("example.jpg", "D://dest.jpg", oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

Kaburkan semua wajah

Gunakan g_faces untuk mendeteksi dan mengaburkan semua wajah dalam gambar.

String parameter: image/blur,g_faces,r_25,s_50

Gambar sumberGambar hasil proses
原图image

Kode contoh

Java

Diperlukan Java SDK versi 3.17.4 atau 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 {
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        String region = "cn-hangzhou";
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        String bucketName = "examplebucket";
        String objectName = "example.jpg";

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

        try {
            // Kaburkan semua wajah: radius 25, deviasi standar 50
            String image = "image/blur,g_faces,r_25,s_50";
            GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
            request.setProcess(image);
            ossClient.getObject(request, new File("D:\\dest.jpg"));
        } 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();
            }
        }
    }
}

PHP

Diperlukan PHP SDK versi 2.7.0 atau 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;

$provider = new EnvironmentVariableCredentialsProvider();
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "examplebucket";
$object = "src.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);

// Kaburkan semua wajah: radius 25, deviasi standar 50
$image = "image/blur,g_faces,r_25,s_50";

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

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

Python

Diperlukan Python SDK versi 2.18.4 atau lebih baru.

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

auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)

key = 'source-example.jpg'
local_file_name = 'D:\\target-example.jpg'

# Kaburkan semua wajah: radius 25, deviasi standar 50
process = 'image/blur,g_faces,r_25,s_50'
result = bucket.get_object_to_file(key, local_file_name, process=process)

Go

Diperlukan Go SDK versi 3.0.2 atau 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() {
	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)
	}

	// Kaburkan semua wajah: radius 25, deviasi standar 50
	image := "image/blur,g_faces,r_25,s_50"
	err = bucket.GetObjectToFile("example.jpg", "D://dest.jpg", oss.Process(image))
	if err != nil {
		HandleError(err)
	}
}

Perluas area blur melebihi batas wajah

Gunakan parameter p untuk memperluas area blur melebihi batas wajah yang terdeteksi—berguna ketika rambut atau konteks sekitarnya juga perlu disembunyikan. Nilainya merupakan persentase dari ukuran wajah yang terdeteksi: p_200 memperluas area blur menjadi dua kali ukuran wajah.

Wajah terbesar dengan area blur yang diperluas

String parameter: image/blur,g_face,p_200,r_25,s_50

Gambar sumberGambar hasil proses
原图image

Semua wajah dengan area blur yang diperluas

String parameter: image/blur,g_faces,p_200,r_25,s_50

Gambar sumberGambar hasil proses
原图image

Kode SDK mengikuti pola yang sama seperti contoh di atas—ganti string parameter image dengan nilai yang sesuai. Misalnya, dalam Java:

// Kaburkan wajah terbesar, perluas area blur menjadi 2x ukuran wajah
String image = "image/blur,g_face,p_200,r_25,s_50";

// Kaburkan semua wajah, perluas area blur menjadi 2x ukuran wajah
// (deklarasikan dalam cakupan terpisah atau gunakan nama variabel berbeda)
String image2 = "image/blur,g_faces,p_200,r_25,s_50";

Referensi

Kombinasikan efek blur OSS IMG dengan CSS filter: blur() untuk menciptakan efek visual berlapis di halaman web. Contoh berikut menerapkan blur IMG di sisi server, lalu menambahkan blur CSS di atasnya untuk efek aditif:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Contoh efek blur</title>
    <style>
        .blurred {
            filter: blur(5px);
        }

        .container {
            position: relative;
            width: 300px;
        }

        .text {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: white;
            font-size: 24px;
        }
    </style>
</head>
<body>
    <div class="container">
        <img src="https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg" alt="Gambar contoh" class="blurred">
        <div class="text">Hello World</div>
    </div>
    <div>
        <img src="https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg?x-oss-process=image%2Fblur%2Cr_10%2Cs_10&spm=a2c4g.11186623.0.i12">
    </div>
</body>
</html>