Descrición xeral da API da imaxe para Java 8

Python 2.7 / 3 | Java 8/11 | PHP | ruby | ir 1.11 / 1.12 + | node.js

App Engine ofrece a capacidade de manipular datos de imaxe mediante un servizo de imaxe dedicado. O servizo de imaxe pode manipular imaxes, unirse a varias imaxes nun só, converter os formatos de imaxe, proporcionar metadatos de imaxe como formato, ancho, altura e un histograma de valores de cor.

Java 8 en App Engine admite imaxes nativas de Java As clases de manipulación, como AWT e Java2D xunto coa API da imaxe do motor da aplicación.

O servizo de imaxe pode aceptar datos de imaxe directamente desde a aplicación ou pode usar un valor de Google Cloud Storage. O servizo de imaxe tamén pode usar un valor de blobstore en nube, pero recomendamos usar o almacenamento en nube.

As imaxes almacenadas no almacenamento en nube e a nube blobstore poden alcanzar o valor máximo permitido para o servizo correspondente. A imaxe transformada móstrase directamente na aplicación e debe ser inferior a 32 megabytes.

Transforma imaxes en Java 8

A API do servizo de imaxe permítelle aplicar transformacións ás imaxes por un servizo no canto de realizar procesamento de imaxes no servidor de aplicacións. A aplicación prepara un obxecto Image cos datos da imaxe que se transformarán e un obxecto Transform coas instrucións para transformar a imaxe. A aplicación obtén un obxecto ImagesService e, a continuación, chame ao seu método applyTransform() co Image e a Obxectos Transform. O método mostra un obxecto Image da imaxe transformada.

A aplicación recibe as instancias ImagesService, Image e Transform usando o 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()));

Pode combinar varias transformacións nunha única acción mediante unha instancia CompositeTransform. Comprobe a referencia da API de imaxes.

Transformacións de imaxe dispoñibles

O servizo de imaxe pode cambiar o tamaño, xirar, xirar e cortar imaxes e mellorar as fotografías. Tamén pode compoñer varias imaxes nunha única imaxe.

Cambiar o tamaño

Pode cambiar o tamaño da imaxe mantendo a mesma proporción. Nin o ancho nin a imaxe redimensionada poden superar os 4.000 píxeles.

rotación

Pode xirar a imaxe en incrementos de 90 graos.

Rotación horizontal

Pode xirar a imaxe horizontalmente.

Xiro verticalmente

Pode xirar a imaxe verticalmente.

CUT UP

Pode recortar a imaxe cunha caixa de límite dada.

Vou ter sorte

transformación “Vou ter sorte” mellora as cores escuras e brillante dunha imaxe, axusta as dúas cores e optimiza o contraste.

Formatos de imaxe

O servizo Aceptar datos de imaxe nos formatos JPEG, PNG, WEBP, GIF (incluíndo GIF animado), BMP, TIFF e ICO. As imaxes transformadas pódense mostrar nos formatos JPEG, WEBP e PNG.

Se o formato de entrada e o formato de saída son diferentes, o servizo converte os datos de entrada no formato de saída antes de facer a transformación.

Como transformar imaxes

O servizo de imaxe pode usar un valor de Google Cloud ou o valor de blobstore como fonte de imaxes para unha transformación. Existen dúas formas de transformar imaxes:

  1. Pode usar as imaxes imervicefactory (), que permite facer transformacións de imaxe sinxelas, como recortar, xirar e xirar.
  2. Usar GetVingurur () permítelle cambiar o tamaño das imaxes e recortarlas de xeito dinámico para que non necesite almacenar diferentes tamaños de imaxe no servidor. Con este método, aparece unha URL que entrega a imaxe e as transformacións feitas á imaxe están codificadas neste URL. Nesta función, suponse que a imaxe non cambia. Se se modifica despois de obter a URL, pode obter resultados inesperados cando o use.

Use a imaxe ImageServiceFactory ()

Pode transformar as imaxes do almacenamento en nube ou blobstore se o tamaño da imaxe é inferior ao máximo permitido por estes dous.Teña en conta que o resultado da transformación móstrase directamente na aplicación e non debe exceder o límite de resposta da API de 32 megabytes.

Co fin de transformar unha imaxe de almacenamento de nube ou blobstore en Java 8, crear o obxecto Image. Para facelo, chame ao método estático e pasalo cun valor blobstore.BlobKey. O resto da API compórtase do xeito esperado. O método applyTransform() mostra o resultado das transformacións ou xera un ImagesServiceFailureException se o resultado é maior que o tamaño máximo de 32 megabytes.

// 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()));

Usos GOTERVINGURL ()

O método GOTERVINGURL () permítelle xerar un URL fixo e dedicado para unha imaxe almacenada en almacenamento en nube ou blobstore. Por exemplo:

// 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);

A URL xerada usa unha infraestrutura de entrega de imaxes altamente optimizada que está separada da súa aplicación. A medida que a imaxe se entrega independentemente da súa solicitude, non xera carga e pode ser moi rendible. A URL que se mostra con este método é sempre o acceso público, pero non se pode adiviñar.

Se desexa deixar de entregar a URL, gravalo co método DeleTeServingURL ().

O método mostra un URL codificado co tamaño especificado e os argumentos de recorte. Se non especifica ningún argumento, o método mostra a URL de imaxe por defecto, por exemplo:

http://lhx.ggpht.com/randomStringImageId

Pode cambiar o tamaño da imaxe e cortalo de xeito dinámico Especificando os argumentos da URL. Os argumentos dispoñibles son os seguintes:

  • =sxx onde xx é un número enteiro de 0 2.560 que representa a lonxitude , en píxeles, no lado máis longo da imaxe. Por exemplo, se engades =s32, o tamaño da imaxe cambia para que a súa dimensión máis longa sexa de 32 píxeles.
  • =sxx-c Onde xx é un número enteiro de 0 a 2.560 que representa o tamaño da imaxe de corte en píxeles e -c dille ao sistema que reduce a imaxe.
# 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

Fotos e servidor de desenvolvemento

O servidor de desenvolvemento usa a máquina local para realizar as capacidades de servizo das imaxes

O servidor Java Developer usa o marco de traballo de imaxe para simular o servizo de imaxe. A característica para mellorar as fotos “Vou ter sorte” non é compatible. O formato de imaxe web só se admite se se instalou un complemento de descodificador axeitado. Por exemplo, pódese empregar o complemento de codificador Java VP8. Teña en conta que o método getServingUrl non está dispoñible no servidor de desenvolvemento.

Unha aclaración sobre a eliminación

Para deixar de entregar unha imaxe almacenada en Almacenamento de nubes ou blobstore, chama o método deleteservingurl ().

Debes evitar a eliminación de imaxes directamente en almacenamento en nube ou blobstore, desde que facelo pode desactivar o acceso a estes a través da URL activa.

URL activo deixará de funcionar se a aplicación que os creou Está desactivado ou eliminado, aínda que a imaxe subxacente permaneza dispoñible.

Tarifas, límites e prezos

Neste momento o uso da API da imaxe non xerar ningunha carga adicional. Comprobe a páxina de prezos do motor da aplicación.

Cada solicitude á API da imaxe tense en conta para a taxa de chamada á API da manipulación da imaxe. Unha aplicación pode facer varias transformacións dunha imaxe nunha soa chamada á API.

Os datos enviados ao servizo de imaxe considéranse dentro da taxa de datos enviada á API (de imaxes). Os datos recibidos do servizo de imaxe tómense en conta a taxa de datos recibida da API (de imaxes).

Cada transformación dunha imaxe considérase dentro da taxa de transformacións executadas.

Para obter máis información, consulte taxas. Para ver o uso actual da súa aplicación, visite a pestana de detalles da taxa da consola de Google Cloud.

Ademais das taxas, os seguintes límites aplícanse ao uso do servizo de imaxe:

límite valor
Tamaño máximo de datos da imaxe enviada ao 32 megabytes
Tamaño máximo de datos da imaxe recibida do 32 megabytes
tamaño máximo de datos da imaxe enviada ao servizo ou Recibido a partir deste 50 megapíxeles

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *