Este início rápido demonstra um caso de uso para extensão Quarkus AWT.
Há um ponto de extremidade POST único que consome dados de um formulário de várias partes e retorna um fluxo de octetos com uma imagem PNG com marca d'água. Por uma questão de brevidade, independentemente do tipo de imagem postada, o serviço sempre retorna uma imagem PNG.
Extensão Quarkus AWT habilita um conjunto de ImageIO e AWT funcionalidade em imagens nativas do Quarkus. Consulte a documentação e os testes da extensão para conhecer o escopo disponível. Dada a natureza das bibliotecas nativas no JDK implementando vários algoritmos de processamento de imagem, aventurar-se fora do escopo testado pode resultar em tempo de construção de imagem nativa ou falha de tempo de execução.
Observação microdnf
comando para instalar a biblioteca fontconfig
em Dockerfile.jvm
e Dockerfile.legacy-jar para suportar o modo jvm.
As bibliotecas freetype
e fontconfig
são necessárias para o modo nativo em Dockerfile.native.
e.g.
curl -F "image=@/tmp/my_image.jpg" http://localhost:8080/watermark --output /tmp/result.png
Marca d'água a imagem fornecida com algum texto no canto superior esquerdo e um ícone do Quarkus no canto inferior direito.
Veja ImageResourceTest.java. The test is executed in native mode with:
./mvnw clean verify -Pnative
Para executar testes nativos localmente, é necessário um JDK 11.0.13+ com Mandrel (ou GraalVM) 21.3+.
Além disso, as bibliotecas freetype-devel
e fontconfig
devem ser instaladas.
Este é um exemplo do que este início rápido faz com uma imagem: