Python 2.7 / 3 | Java 8/11 | PHP | Ruby | Go 1.11 / 1.12 + | NODE.JS
App Engine oferă posibilitatea de a manipula datele imaginii prin intermediul unui serviciu de imagine dedicat. Serviciul de imagine poate manipula imagini, să se alăture mai multor imagini într-o singură imagine, să convertească formate de imagine, să ofere metadate imagine ca format, lățime, înălțime și o histogramă de valori de culoare.
Java 8 în App Engine acceptă imagini native Java Clase de manipulare, cum ar fi AWT și JAVA2D împreună cu aplicația Engine Image API.
Serviciul de imagine poate accepta date de imagine direct din aplicație sau puteți utiliza o valoare de la stocarea Google Cloud. Serviciul de imagine poate utiliza, de asemenea, o valoare de cloud Blobstore, dar vă recomandăm să utilizați stocarea cloud.
Imaginile stocate în cloud Storage și Blobstore cloud pot ajunge la valoarea maximă permisă pentru serviciul corespunzător. Imaginea transformată este afișată direct pe aplicație și trebuie să fie mai mică de 32 megaocteți.
transformă imaginile din Java 8
API-ul serviciului de imagine vă permite să aplicați transformări la imagini de un serviciu în loc să efectuați procesarea imaginilor pe serverul de aplicații. Aplicația pregătește un obiect Image
cu datele de imagine care vor fi transformate și un obiect Transform
cu instrucțiunile pentru transformarea imaginii. Aplicația obține un obiect ImagesService
și apoi apelați metoda applyTransform()
cu Image
și obiecte Transform
. Metoda prezintă un obiect Image
al imaginii transformate.
Aplicația primește instanțele ImagesService
, Image
și Transform
folosind ImagesServiceFactory
.
// Get an instance of the imagesService we can use to transform images.ImagesService imagesService = ImagesServiceFactory.getImagesService();// Make an image directly from a byte array, and transform it.Image image = ImagesServiceFactory.makeImage(imageBytes);Transform resize = ImagesServiceFactory.makeResize(100, 50);Image resizedImage = imagesService.applyTransform(resize, image);// Write the transformed image back to a Cloud Storage object.gcsService.createOrReplace( new GcsFilename(bucket, "resizedImage.jpeg"), new GcsFileOptions.Builder().mimeType("image/jpeg").build(), ByteBuffer.wrap(resizedImage.getImageData()));
Puteți combina mai multe transformări într-o singură acțiune prin intermediul unei instanțe CompositeTransform
. Verificați referința API a imaginilor.
Transformări de imagine disponibile
Serviciul de imagine poate schimba dimensiunea, rotiți, rotiți și tăiați imaginile și îmbunătățiți fotografiile. De asemenea, puteți compune mai multe imagini într-o singură imagine.
Schimbarea dimensiunii
Puteți schimba dimensiunea imaginii prin menținerea aceleiași proporții. Nici lățimea, nici imaginea redimensionată nu pot depăși 4.000 de pixeli.
iv id = „A4df5c5f83”
rotație
Puteți roti imaginea în incremente de 90 de grade.
Puteți roti imaginea orizontal.
rotat vertical
Puteți roti imaginea vertical.
tăiat
Puteți tăia imaginea cu o cutie de limitare dată.
Voi fi norocos
transformare „Voi fi norocos” îmbunătățește culorile întunecate și luminos de la o imagine, reglați ambele culori și optimizează contrastul.
Formate de imagine
Serviciul Acceptați date de imagine în formatele JPEG, PNG, WebP, GIF (inclusiv GIF animat), BMP, TIFF și ICO. Imaginile transformate pot fi afișate în formatele JPEG, WEBP și PNG.
Dacă formatul de intrare și formatul de ieșire sunt diferite, serviciul convertește datele de intrare în formatul de ieșire înainte de a efectua transformarea.
Cum se transformă imaginile
Serviciul de imagine poate utiliza o valoare de stocare Google sau o valoare BLOBSTORE ca o sursă de imagini pentru o transformare. Există două modalități de a transforma imaginile:
- Puteți utiliza imaginile ImerviceFactory (), care vă permite să faceți transformări simple de imagine, cum ar fi Trim, Rotire și Rotire.
- Utilizare GetServingurl () Vă permite să schimbați dimensiunea imaginilor și să le tăiați într-un mod dinamic, astfel încât să nu aveți nevoie să stocați diferite dimensiuni de imagine pe server. Cu această metodă, este afișată o adresă URL care furnizează imaginea și transformările făcute în imagine sunt codificate în această adresă URL. În această funcție, se presupune că imaginea nu se schimbă. Dacă este modificat după obținerea adresei URL, este posibil să obțineți rezultate neașteptate atunci când îl utilizați.
Utilizați imaginile ImaginiServiceFactory ()
Puteți transforma imaginile din cloud Storage sau blobstore dacă dimensiunea imaginii este mai mică decât maximul permis de aceste două.Rețineți că rezultatul transformării este afișat direct pe aplicație și nu trebuie să depășească limita de răspuns a API de 32 megabytes.
pentru a transforma o imagine de stocare a nor sau a imaginii BLOBSTORE în Java 8, creați obiectul Image
. Pentru a face acest lucru, sunați la metoda statică ImagesServiceFactory.makeImageFromBlob()
și treceți o valoare blobstore.BlobKey
. Restul API se comportă în modul așteptat. Metoda applyTransform()
prezintă rezultatul transformărilor sau generează un ImagesServiceFailureException
dacă rezultatul este mai mare decât dimensiunea maximă de 32 megaocteți. /p>
// Make an image from a Cloud Storage object, and transform it.BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + bucket + "/image.jpeg");Image blobImage = ImagesServiceFactory.makeImageFromBlob(blobKey);Transform rotate = ImagesServiceFactory.makeRotate(90);Image rotatedImage = imagesService.applyTransform(rotate, blobImage);// Write the transformed image back to a Cloud Storage object.gcsService.createOrReplace( new GcsFilename(bucket, "rotatedImage.jpeg"), new GcsFileOptions.Builder().mimeType("image/jpeg").build(), ByteBuffer.wrap(rotatedImage.getImageData()));
Utilizări GetServingurn ()
Metoda GetServingurl () vă permite să generați o adresă URL fixă și dedicată pentru O imagine stocată în stocarea cloud sau Blobstore. De exemplu:
// Create a fixed dedicated URL that points to the GCS hosted fileServingUrlOptions options = ServingUrlOptions.Builder .withGoogleStorageFileName("/gs/" + bucket + "/image.jpeg") .imageSize(150) .crop(true) .secureUrl(true);String url = imagesService.getServingUrl(options);
Adresa URL generată utilizează o infrastructură de livrare a imaginilor foarte optimizate care este separată de aplicația dvs. Deoarece imaginea este livrată independent de aplicația dvs., aceasta nu generează sarcină și poate fi foarte profitabilă. Adresa URL care este afișată în această metodă este întotdeauna accesul public, dar nu poate fi ghicit.
Dacă doriți să opriți furnizarea URL-ului, ardeți-l cu metoda deleteservingurl ().
Metoda prezintă o adresă URL codificată cu dimensiunea specificată și argumentele de tăiere. Dacă nu specificați niciun argument, metoda afișează adresa URL implicită, de exemplu:
http://lhx.ggpht.com/randomStringImageId
Puteți schimba dimensiunea imaginii și o taie dinamic Specificarea argumentelor din adresa URL. Argumentele disponibile sunt după cum urmează:
-
=sxx
undexx
este un număr întreg de 0 2,560 reprezentând lungimea , în pixeli, pe cea mai lungă parte a imaginii. De exemplu, dacă adăugați=s32
, dimensiunea imaginii este schimbată astfel încât cea mai lungă dimensiune să fie de 32 pixeli. -
=sxx-c
unde xx este un număr întreg de la 0 la 2.560 reprezentând dimensiunea imaginii de decupare în pixeli și-c
spune sistemul care taie imaginea.
# Resize the image to 32 pixels (aspect-ratio preserved)http://lhx.ggpht.com/randomStringImageId=s32# Crop the image to 32 pixelshttp://lhx.ggpht.com/randomStringImageId=s32-c
Imagini și server de dezvoltare
Serverul de dezvoltare utilizează mașina dvs. locală pentru a efectua capacitățile de serviciu ale imaginilor
Serverul de dezvoltatori Java utilizează cadrul de lucru pentru simularea serviciului de imagine. Caracteristica pentru îmbunătățirea fotografiilor „voi avea noroc” nu este compatibilă. Formatul imaginii WebP este acceptat numai dacă a fost instalat un add-on de decodor adecvat. De exemplu, pot fi utilizate add-on Java VP8 encoder. Rețineți că metoda getServingUrl
nu este disponibilă pe serverul de dezvoltare.
o clarificare a eliminării
pentru a opri livrarea unei imagini stocate în Depozitarea cloud sau BLOBSTORE, apelați metoda deleteservingurl ().
Trebuie să evitați ștergerea imaginilor direct în cloud Storage sau Blobstore, deoarece acest lucru poate dezactiva accesul la acestea prin adresa URL activă.
URL-urile active vor înceta să funcționeze dacă aplicația care le-a creat Este dezactivat sau șters, chiar dacă imaginea subiacentă rămâne disponibilă.
Taxe, limite și prețuri
În acest moment utilizarea imaginii API nu generează nicio taxă suplimentară. Verificați pagina de preț a motorului aplicației.
Fiecare solicitare a imaginii API este luată în considerare pentru taxa de apel la API-ul de manipulare a imaginii. O aplicație poate face mai multe transformări ale unei imagini într-un singur apel la API.
Datele trimise la serviciul de imagine sunt luate în considerare în cadrul taxei de date trimise la API (imagini). Datele primite din serviciul de imagine sunt luate în considerare pentru taxa de date primită de la API (imagini).
Fiecare transformare a unei imagini este luată în considerare în taxa de transformări executate.
Pentru mai multe informații, consultați taxele. Pentru a vedea utilizarea curentă a aplicației dvs., vizitați fila Detaliu pentru consola Cloud Google.
În plus față de taxe, următoarele limite sunt aplicate utilizării serviciului de imagine:
32 megabytes | |
Dimensiunea maximă a imaginii primite a | 32 megabytes |
Dimensiunea maximă a imaginii trimise la serviciu sau Primit de la acest | 50 megapixeli |