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
| Parameter | Wajib | Deskripsi | Nilai valid |
|---|---|---|---|
r | Ya | Radius blur. Nilai yang lebih tinggi menghasilkan efek blur yang lebih kuat. | 1–50 |
s | Ya | Deviasi standar distribusi Gaussian. Nilai yang lebih tinggi menghasilkan efek blur yang lebih kuat. | 1–50 |
g | Tidak | Cakupan blur. Membatasi efek blur hanya pada wajah yang terdeteksi, bukan seluruh gambar. | face (hanya wajah terbesar), faces (semua wajah yang terdeteksi) |
p | Tidak | Ubah ukuran area yang dikaburkan sebagai persentase dari ukuran wajah yang terdeteksi. Hanya berlaku ketika parameter g diatur. | 1–200 (%) |
Parametergmengharuskan bucket terikat ke proyek Intelligent Media Management (IMM). Akses anonim tidak didukung saat menggunakang. 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 sumber | Gambar hasil proses |
|---|---|
![]() | ![]() |
https://oss-console-img-demo-cn-hangzhou-3az.oss-cn-hangzhou.aliyuncs.com/example1.jpg | https://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: SignatureValueUntuk 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).
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 sumber | Gambar hasil proses |
|---|---|
![]() | ![]() |
Semua wajah dengan area blur yang diperluas
String parameter: image/blur,g_faces,p_200,r_25,s_50
| Gambar sumber | Gambar hasil proses |
|---|---|
![]() | ![]() |
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>




