A API Images permite disponibilizar imagens diretamente do Google Cloud Storage ou do Blobstore e manipulá-las imediatamente. Para ver
o conteúdo do pacote image
, consulte as referências do pacote
image
.
Os buckets do Cloud Storage precisam usar listas de controle de acesso detalhadas para que a API Images funcione. Nos buckets configurados com acesso uniforme no nível do bucket, a API Images não vai conseguir buscar imagens nesse bucket e vai gerar a mensagem de erro TransformationError
. Se o bucket estiver configurado dessa maneira, é possível desativar o acesso uniforme no nível do bucket.
Formatos de imagem
O serviço aceita dados de imagem nos formatos JPEG, PNG, WEBP, GIF (inclusive GIF animado), BMP, TIFF e ICO. As imagens transformadas podem ser retornadas nos formatos JPEG, WEBP e PNG.
Se os formatos de entrada e de saída forem diferentes, o serviço converterá os dados de entrada para o formato de saída antes de realizar a transformação.
Como disponibilizar e redimensionar imagens
A função image.ServingURL
permite gerar um URL estável e dedicado para exibir miniaturas de imagens adequadas para
a Web.
Você pode armazenar uma única cópia da imagem original no Blobstore e, em seguida, solicitar um URL de alto desempenho por imagem que possa disponibilizar a imagem redimensionada e/ou recortada automaticamente. A disponibilização por esse URL não incorre em nenhuma carga de CPU ou de disponibilização dinâmica no aplicativo, embora a largura de banda ainda seja cobrada como de costume.
O URL retornado pela função é sempre público, mas não pode ser adivinhado. Os URLs particulares
não têm suporte no momento. Para parar de exibir o URL, exclua-o usando a
função
image.DeleteServingURL
.
Se você transmitir um
valor image.ServingURLOptions
para a função, ele retornará um URL codificado com essas opções. Se você transmitir
nil
, a função retornará o URL padrão para a imagem. Por exemplo:
http://lhx.ggpht.com/randomStringImageId
É possível redimensionar e cortar a imagem dinamicamente. Basta especificar os argumentos no URL. Os argumentos disponíveis são:
=sxx
, em quexx
é um número inteiro de 0 a 2.560 que representa o comprimento, em pixels, do lado maior da imagem. Por exemplo, adicionar=s32
redimensiona a imagem de modo que a dimensão maior tenha 32 pixels.=sxx-c
, em que xx é um número inteiro de 0 a 2.560 que representa o tamanho da imagem recortada em pixels, e-c
informa ao sistema para recortar a imagem.
# 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
Como disponibilizar imagens do Cloud Storage usando a API Blobstore
Se você usa o Cloud Storage como repositório de dados e disponibiliza as imagens usando a API Blobstore, é necessário criar uma chave blob para o objeto do Cloud Storage.
Uma observação sobre exclusão
Para deixar de exibir uma imagem armazenada no Cloud Storage ou no Blobstore, chame
a
função
image.DeleteServingURL
.
Você deve evitar excluir diretamente as imagens no Cloud Storage ou no Blobstore, porque isso pode deixá-las acessíveis por meio do URL de disponibilização.
Os URLs exibidos deixarão de funcionar se o aplicativo que os criou for desativado ou excluído, mesmo se a imagem subjacente permanecer disponível.