App Engine memberikan kemampuan untuk memanipulasi data gambar menggunakan layanan Gambar khusus. Layanan Gambar dapat memanipulasi gambar, menggabungkan beberapa gambar menjadi satu gambar, mengubah format gambar, menyediakan metadata gambar seperti format, lebar, tinggi, dan histogram nilai warna.
Layanan Gambar dapat menerima data gambar langsung dari aplikasi, atau dapat menggunakan nilai Cloud Storage. (Layanan Gambar juga dapat menggunakan nilai Cloud Blobstore, tetapi sebaiknya gunakan Cloud Storage.)
Gambar yang disimpan di Cloud Storage dan Cloud Blobstore dapat mencapai nilai maksimum yang diizinkan untuk masing-masing layanan. Gambar yang ditransformasi akan ditampilkan langsung ke aplikasi, dan ukurannya harus kurang dari 32 megabyte.
Bucket Cloud Storage harus menggunakan Daftar Kontrol Akses yang mendetail agar Images API dapat berfungsi. Untuk bucket yang telah dikonfigurasi untuk akses level bucket yang seragam, Images API tidak akan dapat mengambil gambar di bucket tersebut dan menampilkan pesan error TransformationError
.
Jika bucket Anda dikonfigurasi dengan cara ini, Anda dapat menonaktifkan akses level bucket yang seragam.
Image Service API
Transformasi gambar yang tersedia
Layanan Gambar dapat mengubah ukuran, memutar, membalik, dan memangkas gambar, serta meningkatkan kualitas foto. Layanan ini juga dapat menggabungkan beberapa gambar menjadi satu gambar.
Ubah ukuran
Anda dapat mengubah ukuran gambar dengan tetap mempertahankan rasio aspek yang sama. Lebar atau tinggi gambar yang diubah ukurannya tidak boleh melebihi 4.000 piksel.
Rotasi
Anda dapat memutar gambar dalam kelipatan 90 derajat.
Balik secara horizontal
Anda dapat membalik gambar secara horizontal.
Balik secara vertikal
Anda dapat membalik gambar secara vertikal.
Crop
Anda dapat memangkas gambar dengan kotak pembatas yang diberikan.
Saya Lagi Beruntung
Transformasi "Saya Lagi Beruntung" meningkatkan warna gelap dan cerah dalam gambar serta menyesuaikan warna dan mengoptimalkan kontras.
Format gambar
Layanan menerima data gambar dalam format JPEG, PNG, WEBP, GIF (termasuk GIF animasi), BMP, TIFF, dan ICO. Gambar yang diubah dapat ditampilkan dalam format JPEG, WEBP, dan PNG.
Jika format input dan format output berbeda, layanan akan mengonversi data input menjadi format output sebelum melakukan transformasi.
Mentransformasi gambar
Layanan Gambar dapat menggunakan nilai dari Google Cloud Storage atau Blobstore sebagai sumber gambar untuk sebuah transformasi. Ada dua cara untuk mentransformasi gambar:
- Dengan menggunakan class
Image()
, Anda dapat melakukan transformasi gambar sederhana, seperti memangkas, membalik, dan memutar. - Dengan menggunakan get_serving_url() , Anda dapat mengubah ukuran dan memangkas gambar secara dinamis, sehingga Anda tidak perlu menyimpan ukuran gambar yang berbeda di server. Metode ini menampilkan URL yang menayangkan gambar, dan transformasi ke gambar dienkode dalam URL ini. Fungsi ini mengasumsikan bahwa gambar tidak berubah; jika dimodifikasi setelah mendapatkan URL, Anda mungkin mendapatkan hasil yang tak terduga dari penggunaan URL.
Menggunakan Class
Image()
Anda dapat mengubah gambar dari Cloud Storage atau Blobstore jika ukuran gambar lebih kecil dari ukuran maksimum yang diizinkan oleh Cloud Storage atau Blobstore. Perlu diperhatikan bahwa hasil transformasi akan ditampilkan langsung ke aplikasi, dan tidak boleh melebihi batas respons API sebesar 32 megabyte.
Untuk mengubah gambar dari Cloud Storage atau Blobstore, , bukan menetapkan argumen image_data
dari konstruktor Image dengan data gambar, tetapkan argumen blob_key
ke kunci Blobstore yang nilainya adalah gambar. Bagian lainnya dari API berperilaku seperti yang diharapkan.
Metode execute_transforms()
menampilkan hasil transformasi, atau menampilkan
LargeImageError
jika hasilnya lebih besar dari ukuran maksimum 32 megabyte.
Menggunakan
get_serving_url()
Metode get_serving_url() memungkinkan Anda membuat URL tetap dan khusus untuk gambar yang disimpan di Cloud Storage atau Blobstore.
URL yang dihasilkan menggunakan infrastruktur penayangan gambar yang sangat dioptimalkan dan terpisah dari aplikasi Anda. Karena gambar ditayangkan secara terpisah dari aplikasi Anda, gambar tersebut tidak menimbulkan beban dan bisa sangat hemat biaya. URL yang ditampilkan oleh metode ini selalu dapat diakses secara publik, tetapi tidak dapat ditebak.
Jika Anda ingin berhenti menayangkan URL, hapus URL tersebut menggunakan metode
delete_serving_url()
.
Fungsi
Metode ini menampilkan URL yang dienkode dengan argumen pangkas dan ukuran yang ditentukan. Jika Anda tidak menentukan argumen apa pun, metode akan menampilkan URL default untuk gambar, misalnya:
http://lhx.ggpht.com/randomStringImageId
Anda dapat mengubah ukuran dan memangkas gambar secara dinamis dengan menentukan argumen dalam URL. Argumen yang tersedia adalah:
=sxx
di manaxx
adalah bilangan bulat dengan rentang dari 0–2560 yang mewakili panjang sisi terpanjang gambar, dalam piksel. Misalnya, menambahkan=s32
akan mengubah ukuran gambar sehingga dimensi terpanjangnya adalah 32 piksel.=sxx-c
di mana xx adalah bilangan bulat dengan rentang dari 0–2560 yang merepresentasikan ukuran gambar yang dipangkas dalam piksel, dan-c
akan memberi tahu sistem untuk memangkas gambar.
# Resize the image to 32 pixels (aspect-ratio preserved) http://lhx.ggpht.com/randomStringImageId=s32 # Crop the image to 32 pixels http://lhx.ggpht.com/randomStringImageId=s32-c
Gambar dan server pengembangan
Server pengembangan menggunakan komputer lokal Anda untuk menjalankan kemampuan layanan Gambar.
Anda dapat menggunakan Pillow atau antarmuka Python untuk ImageMagick guna mengubah ukuran, mengonversi, dan memanipulasi gambar.
Catatan tentang penghapusan
Untuk berhenti menayangkan gambar yang disimpan di Cloud Storage atau Blobstore, panggil metode
delete_serving_url()
.
Fungsi
Hindari menghapus gambar secara langsung di Cloud Storage atau Blobstore karena hal ini dapat membuat gambar tetap dapat diakses melalui URL penayangan.
URL penayangan akan berhenti berfungsi jika aplikasi yang membuatnya dinonaktifkan atau dihapus, meskipun gambar yang mendasarinya tetap tersedia.
Kuota, batas, dan harga
Saat ini, tidak ada biaya tambahan yang timbul dari penggunaan Images API. Lihat halaman harga App Engine.
Setiap permintaan Images API diperhitungkan dalam kuota Panggilan API Manipulasi Gambar . Aplikasi dapat melakukan beberapa transformasi gambar dalam satu panggilan API.
Data yang dikirim ke layanan Gambar akan mengurangi kuota Data yang Dikirim ke (Images) API. Data yang diterima dari layanan Gambar akan mengurangi kuota Data yang Diterima dari (Images) API.
Setiap transformasi gambar diperhitungkan dalam kuota Transformasi yang dilaksanakan.
Untuk mengetahui informasi selengkapnya, lihat Kuota. Anda dapat melihat penggunaan kuota aplikasi saat ini dengan membuka tab Detail Kuota konsol Google Cloud.
Selain kuota, batas berikut berlaku untuk penggunaan layanan Gambar:
Batas | Jumlah |
---|---|
ukuran data maksimum gambar yang dikirim ke layanan | 32 megabyte |
ukuran data maksimum gambar yang diterima dari layanan | 32 megabyte |
ukuran maksimum gambar yang dikirim atau diterima dari layanan | 50 megapiksel |