Visão geral da API de imagem para Java 8

Python 2.7 / 3 | Java 8/11 | PHP | Ruby | GO 1.11 / 1.12 + | Node.js

App Engine oferece a capacidade de manipular dados de imagem por meio de um serviço de imagem dedicado. O serviço de imagem pode manipular imagens, junte-se a várias imagens em um, converter formatos de imagem, fornecer metadados de imagem como formato, largura, altura e um histograma de valores de cor.

java 8 no mecanismo app suporta imagens nativas do Java Classes de manipulação, como AWT e Java2D, juntamente com a API da Image do Engine App.

O serviço de imagem pode aceitar dados de imagem diretamente do aplicativo ou você pode usar um valor do Google Cloud Storage. O serviço de imagem também pode usar um valor de blobstore em nuvem, mas recomendamos o uso de armazenamento em nuvem.

As imagens armazenadas no armazenamento em nuvem e na nuvem BLOBStore podem atingir o valor máximo permitido para o serviço correspondente. A imagem transformada é exibida diretamente no aplicativo e deve ser inferior a 32 megabytes.

transforma imagens em java 8

A API do serviço de imagem permite aplicar transformações às imagens por um serviço em vez de executar o processamento de imagens no servidor de aplicativos. O aplicativo prepara um objeto Image com os dados da imagem que serão transformados e um objeto Transform com as instruções para transformar a imagem. O aplicativo obtém um objeto ImagesService e, em seguida, ligue para o seu método applyTransform() com o Image e o objetos Transform. O método mostra um objeto Image da imagem transformada.

O aplicativo recebe as instâncias ImagesService, 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()));

Você pode combinar várias transformações em uma única ação por meio de uma instância CompositeTransform. Verifique a referência da API das imagens.

Transformações de imagem disponíveis

O serviço de imagem pode alterar o tamanho, girar, girar e cortar imagens e melhorar as fotografias. Você também pode compor várias imagens em uma única imagem.

Alterando o tamanho

Você pode alterar o tamanho da imagem, mantendo a mesma proporção. Nem largura nem a imagem redimensionada podem exceder 4.000 pixels.

rotação

Você pode girar a imagem em incrementos de 90 graus.

rotação horizontal

você pode girar a imagem horizontalmente.

verticalmente girado

você pode girar a imagem verticalmente.

Cortar

Você pode aparar a imagem com uma determinada caixa de limite.

Eu vou ter sorte

transformação “Eu vou ter sorte” melhora as cores escuras e brilhante de uma imagem, ajuste ambas as cores e otimize o contraste.

Formatos de imagem

o serviço Aceite dados de imagem nos formatos JPEG, PNG, WebP, GIF (incluindo GIF animado), BMP, TIFF e ICO. As imagens transformadas podem ser exibidas nos formatos JPEG, WebP e PNG.

Se o formato de entrada e saída forem diferentes, o serviço converte os dados de entrada para o formato de saída antes de fazer a transformação.

Como transformar imagens

O serviço de imagem pode usar um valor de armazenamento do Google Cloud ou blobstore como fonte de imagens para uma transformação. Há duas maneiras de transformar imagens:

  1. Você pode usar as imagens iMerviceFactory (), que permite que você faça transformações simples de imagens, como acabamento, girar e girar.
  2. Use GetServingURL () permite alterar o tamanho das imagens e aparafusá-las de uma maneira dinâmica para que você não precise armazenar tamanhos de imagem diferentes no servidor. Com este método, um URL que fornece a imagem é exibido e as transformações feitas à imagem são codificadas neste URL. Nesta função, é assumida que a imagem não muda. Se for modificado após a obtenção do URL, você poderá obter resultados inesperados quando você usá-lo.

Use a imagem imageserviceFactory ()

Você pode transformar imagens do armazenamento em nuvem ou blobstore se o tamanho da imagem for menor que o máximo permitido por esses dois.Observe que o resultado da transformação é exibido diretamente no aplicativo e não deve exceder o limite de resposta da API de 32 megabytes.

Para transformar uma imagem de armazenamento ou blobstore em Java 8, crie o objeto Image. Para fazer isso, ligue para o método estático ImagesServiceFactory.makeImageFromBlob() e passe um valor blobstore.BlobKey. O resto da API se comporta da maneira esperada. O método Mostra o resultado das transformações ou gera um ImagesServiceFailureException Se o resultado for maior que o tamanho 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()));

usa getservingurn ()

o método getservingurl () permite gerar um URL fixo e dedicado para Uma imagem armazenada em armazenamento em nuvem 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);

O URL gerado usa uma infraestrutura de entrega de imagem altamente otimizada que é separada do seu aplicativo. Como a imagem é entregue independentemente do seu aplicativo, ela não gera carga e pode ser altamente lucrativa. O URL que é mostrado com este método é sempre acesso público, mas não pode ser adivinhado.

Se você quiser parar de entregar o URL, gravá-lo com o método deleteservingurl ().

O método mostra um URL codificado com o tamanho especificado e os argumentos de recorte. Se você não especificar qualquer argumento, o método mostra o URL de imagem padrão, por exemplo:

http://lhx.ggpht.com/randomStringImageId

Você pode alterar o tamanho da imagem e cortá-lo dinamicamente Especificando os argumentos no URL. Argumentos disponíveis são os seguintes:

  • =sxx ONDE xx é um inteiro de 0 2.560 representando o comprimento , em pixels, no lado mais longo da imagem. Por exemplo, se você adicionar =s32, o tamanho da imagem é alterado para que sua dimensão mais longa seja de 32 pixels.
  • =sxx-c onde xx é um inteiro de 0 a 2.560 representando o tamanho da imagem de corte em pixels, e -c informa ao sistema que corta a imagem.
# 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

Servidor de fotos e desenvolvimento

O servidor de desenvolvimento usa sua máquina local para executar os recursos de serviço de imagens

O Java Developer Server usa o quadro de trabalho de imagem para simular o serviço de imagem. O recurso para melhorar as fotos “eu terei sorte” não é compatível. O formato da imagem da WebP é suportado apenas se um complemento de decodificador adequado foi instalado. Por exemplo, o add-on do codificador Java VP8 pode ser usado. Observe que o método getServingUrl não está disponível no servidor de desenvolvimento.

Um esclarecimento na remoção

para parar de entregar uma imagem armazenada em Armazenamento de nuvem ou blobstore, chama o método deleteServingurl ().

Você deve evitar excluir imagens diretamente no armazenamento em nuvem ou blobstore, pois fazer isso pode desativar o acesso a estes através do URL ativo.

URLs ativos vão parar de funcionar se o aplicativo que os criasse é desativado ou excluído, mesmo que a imagem subjacente permaneça disponível.

taxas, limites e preços

neste momento o uso da API de imagem não gera nenhum custo adicional. Marque a página Preço do Mecanismo do App.

Cada solicitação para a API de imagem é levada em conta para a taxa de chamada para a API de manipulação de imagem. Um aplicativo pode tornar várias transformações de uma imagem em uma única chamada para a API.

Os dados enviados para o serviço de imagem são considerados dentro da taxa de dados enviados para a API (de imagens). Os dados recebidos do serviço de imagem são levados em conta para a taxa de dados recebida da API (de imagens).

Cada transformação de uma imagem é considerada dentro da taxa de transformações executadas.

Para mais informações, veja taxas. Para ver o uso atual do seu aplicativo, visite a guia Detalhes da Taxa de Console do Google Cloud.

Além das taxas, os seguintes limites são aplicados ao uso do serviço de imagem:

limite quantidade
Tamanho máximo de dados da imagem enviada para os 32 megabytes
Tamanho máximo de dados da imagem recebida do 32 megabytes
Tamanho máximo de dados da imagem enviada ao serviço ou recebido deste 50 megapixels

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *