Anda dapat menentukan parameter sharpen untuk mempertajam gambar yang disimpan di Object Storage Service (OSS). Topik ini menjelaskan parameter sharpen yang digunakan untuk mempertajam gambar serta memberikan contoh cara mempertajam gambar.
Parameter
Action: sharpen
Tabel berikut menjelaskan nilai-nilai valid dari parameter sharpen.
Format | Deskripsi | Nilai valid |
[nilai] | Tingkat ketajaman. | [50,399] Nilai yang lebih besar menentukan gambar yang lebih jelas. Namun, nilai yang terlalu besar dapat menyebabkan artefak pada gambar. Kami sarankan Anda mengatur parameter ini ke 100 untuk hasil yang optimal. |
Metode
Pertajam gambar dengan akses public-read atau public-read-write
Berikut adalah contoh cara mempertajam gambar bernama example.jpg dalam bucket oss-console-img-demo-cn-hangzhou di wilayah China (Hangzhou). Gambar tersebut di-hosting di URL berikut:
Pertajam gambar sumber dengan tingkat ketajaman diatur ke 100. URL berikut digunakan untuk memproses gambar: https://oss-console-img-demo-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/sharpen,100.
Pertajam gambar pribadi
Anda dapat menggunakan OSS SDK dan OSS API untuk mempertajam gambar pribadi.
Gunakan OSS SDK
Kode sampel berikut memberikan contoh cara mempertajam gambar pribadi menggunakan SDK OSS untuk bahasa pemrograman umum. Untuk informasi lebih lanjut tentang cara mempertajam gambar pribadi dengan bahasa pemrograman lainnya, lihat Referensi SDK.
Java
OSS SDK for Java versi 3.17.4 atau lebih baru diperlukan.
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 {
// Dalam contoh ini, endpoint wilayah China (Hangzhou) digunakan. Tentukan endpoint sebenarnya Anda.
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan wilayah bucket tempat gambar pribadi disimpan. Contoh: cn-hangzhou.
String region = "cn-hangzhou";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// Tentukan nama bucket. Contoh: examplebucket.
String bucketName = "examplebucket";
// Tentukan jalur lengkap objek. Jangan masukkan nama bucket dalam jalur lengkap.
String objectName = "example.jpg";
// Tentukan jalur lengkap gambar yang diproses. Contoh: D:\\dest.jpg. Jika gambar dengan nama yang sama sudah ada di jalur tersebut, gambar yang diproses akan menimpa gambar tersebut. Jika tidak, gambar yang diproses akan disimpan di jalur tersebut.
String pathName = "D:\\dest.jpg";
// Buat instance OSSClient.
// Panggil metode shutdown untuk melepaskan sumber daya saat OSSClient tidak lagi digunakan.
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// Tentukan tingkat ketajaman.
String image = "image/sharpen,100";
GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
request.setProcess(image);
// Atur nama gambar yang diproses menjadi dest.jpg dan simpan ke komputer lokal Anda.
// Jika Anda hanya menentukan nama gambar yang diproses seperti dest.jpg tanpa menentukan jalur lokal, gambar yang diproses akan disimpan ke jalur lokal proyek tempat program sampel milik.
ossClient.getObject(request, new File("D:\\dest.jpg"));
} catch (OSSException oe) {
System.out.println("Tangkap OSSException, yang berarti permintaan Anda mencapai OSS, "
+ "tetapi ditolak dengan respons kesalahan karena alasan tertentu.");
System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
System.out.println("Kode Kesalahan:" + oe.getErrorCode());
System.out.println("ID Permintaan:" + oe.getRequestId());
System.out.println("ID Host:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Tangkap ClientException, yang berarti klien mengalami "
+ "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
+ "seperti tidak dapat mengakses jaringan.");
System.out.println("Pesan Kesalahan:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}PHP
OSS SDK for PHP versi 2.7.0 atau lebih baru diperlukan.
<?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;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
$provider = new EnvironmentVariableCredentialsProvider();
// Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan nama bucket. Contoh: examplebucket.
$bucket= "examplebucket";
// Tentukan jalur lengkap objek. Jangan masukkan nama bucket dalam jalur lengkap.
$object = "example.jpg";
// Tentukan jalur lengkap gambar yang diproses. Contoh: D:\\dest.jpg. Jika gambar dengan nama yang sama sudah ada di jalur tersebut, gambar yang diproses akan menimpa gambar tersebut. Jika tidak, gambar yang diproses akan disimpan di jalur tersebut.
// Jika Anda hanya menentukan nama gambar yang diproses seperti dest.jpg tanpa menentukan jalur lokal, gambar yang diproses akan disimpan ke jalur lokal proyek tempat program sampel milik.
$download_file = "D:\\dest.jpg";
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
// Tentukan ID wilayah Alibaba Cloud tempat bucket berada.
"region" => "cn-hangzhou"
);
$ossClient = new OssClient($config);
// Tentukan tingkat ketajaman.
$image = "image/sharpen,100";
$options = array(
OssClient::OSS_FILE_DOWNLOAD => $download_file,
OssClient::OSS_PROCESS => $image);
// Simpan gambar yang diproses ke komputer lokal Anda.
$ossClient->getObject($bucket, $object, $options); Python
OSS SDK for Python versi 2.18.4 atau lebih baru diperlukan.
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
# Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
# Tentukan ID wilayah Alibaba Cloud tempat bucket berada.
region = 'cn-hangzhou'
bucket = oss2.Bucket(auth, endpoint, 'examplebucket', region=region)
# Tentukan nama gambar sumber. Jika gambar tidak disimpan di direktori root bucket, Anda harus menyertakan jalur lengkap gambar. Contoh: exampledir/src.gif.
key = 'example.jpg'
# Tentukan nama gambar yang diproses.
new_pic = 'D:\\dest.jpg'
# Tentukan tingkat ketajaman.
image = 'image/sharpen,100'
bucket.get_object_to_file(key, new_pic, process=image)Go
OSS SDK for Go versi 3.0.2 atau lebih baru diperlukan.
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() {
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Buat instance OSSClient.
// Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Tentukan endpoint sebenarnya Anda.
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)
}
// Tentukan nama bucket tempat gambar sumber disimpan. Contoh: examplebucket.
bucketName := "examplebucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
HandleError(err)
}
// Tentukan nama gambar sumber. Jika gambar tidak disimpan di direktori root bucket, Anda harus menyertakan jalur lengkap gambar. Contoh: exampledir/src.gif.
sourceImageName := "example.jpg"
// Tentukan nama gambar yang diproses.
targetImageName := "D://dest.jpg"
// Tentukan tingkat ketajaman.
image := "image/sharpen,100"
err = bucket.GetObjectToFile(sourceImageName, targetImageName, oss.Process(image))
if err != nil {
HandleError(err)
}
}Gunakan RESTful API
Jika bisnis Anda memerlukan tingkat penyesuaian yang tinggi, Anda dapat langsung memanggil API RESTful. Untuk memanggil API secara langsung, Anda harus menyertakan perhitungan tanda tangan dalam kode Anda. Untuk informasi lebih lanjut, lihat Versi Tanda Tangan 4 (Direkomendasikan).
Anda dapat menentukan parameter sharpen dalam operasi GetObject untuk mempertajam gambar pribadi.
GET /oss.jpg?x-oss-process=image/sharpen,100 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