Como criar um gerador de miniaturas do YouTube programaticamente em Java

Introdução

O objetivo deste documento é demonstrar o uso da API de algumas ferramentas compostas do Aspose.PSD para Java em um exemplo do mundo real. Neste artigo, um programa Java simples que gera miniaturas do YouTube para o canal DW Documentary será escrito e explicado. Este canal foi escolhido do mundo real porque suas miniaturas são bastante padrão e ilustram o uso de algumas ferramentas compostas populares do Aspose.PSD para Java (por exemplo, efeito de sombra (shadow effect), preenchimento radial de gradiente, desenho de texto e formas):

todo:image_alt_text

Como funciona em poucas palavras

Um programa Java simples recebe como entrada dois argumentos: uma legenda e uma imagem. Um documento Photoshop (PSD) em memória é gerado a partir dessa entrada usando o Aspose.PSD para Java. Em seguida, o programa converte o documento de PSD para o formato de arquivo PNG para obter uma miniatura do YouTube com o tamanho de 1280x720 pixels. A imagem de saída se parece com a seguinte:

todo:image_alt_text

Requisitos técnicos

As seguintes tecnologias são necessárias para ter sucesso na execução do código deste artigo:

Iniciando

Como já mencionado, o programa usa PSD em memória para gerar uma miniatura. Portanto, vamos criar um documento PSD, para começar:

PsdImage psdImage = new PsdImage(1280, 720);

Se observar mais de perto a miniatura do YouTube acima, pode-se notar que ela é composta por vários componentes:

  1. uma imagem de fundo (máscara impressa)
  2. um gradiente radial de PSD (destaca a área no canto superior direito)
  3. um logotipo com efeito de sombra
  4. uma legenda e um desenho simples (retângulo azul)

Vamos explorar detalhadamente como implementar cada um desses componentes usando o Aspose.PSD para Java nas próximas seções.

1. Adicionar uma imagem de fundo

A ordem das camadas é importante. Portanto, uma imagem de fundo deve ser adicionada primeiro para não sobrepôr outras camadas. Preste atenção que apenas formatos de arquivo raster são suportados no momento.

1.1. Adicionar uma imagem de fundo a uma camada do Photoshop

Para adicionar uma imagem raster ao PSD, é necessário passar um fluxo de entrada como argumento durante a construção da camada (veja mais exemplos de carregamento de imagens raster):



1.2. Ajuste a imagem de fundo para o canvas

As seguintes 2 ações (redimensionamento, posicionamento) são úteis para os casos em que o tamanho da imagem difere do tamanho do canvas, embora a imagem neste artigo tenha o mesmo tamanho que o canvas (assuma que nem sempre será assim).

Certifique-se de que a imagem carregada se ajusta ao tamanho do canvas (veja mais exemplos de redimensionamento):



Após o redimensionamento, a posição da imagem é alterada. Portanto, para redefinir a posição da imagem, mova a imagem redimensionada para o canto superior esquerdo:



2. Adicionar um gradiente radial

duas maneiras de adicionar um gradiente radial, usando:

É suficiente usar o efeito de sobreposição de gradiente para este exemplo. No entanto, para tornar este artigo mais interessante e útil, a camada de preenchimento de gradiente é usada, uma vez que todos os efeitos de camada se aplicam de maneira semelhante e outro efeito de camada será usado na próxima seção.

2.1. Adicionar uma camada de preenchimento de gradiente radial

O processo de adicionar uma nova camada de preenchimento de gradiente consiste nos seguintes 2 passos:

\1. É necessário declarar as configurações de preenchimento de gradiente, uma vez que não existem predefinições. A configuração mínima necessária se parece com a seguinte (significa que o tipo de gradiente, escala, cor e pontos de transparência são propriedades obrigatórias):



A configuração acima declara um gradiente radial que é transparente nas bordas e azul escuro no centro. A posição do gradiente é no meio do canvas por padrão.

Para inverter o preenchimento de gradiente e deslocá-lo ligeiramente para o canto superior direito, use propriedades opcionais correspondentes:



\2. Quando a configuração estiver pronta, adicione uma camada de preenchimento de gradiente juntamente com suas configurações no PSD:



Adicionar um logotipo com sombra

A sombra (drop shadow) é um efeito que permite adicionar uma sombra personalizada ao longo do contorno do objeto (imagem, texto etc.).

3.1. Adicionar um logotipo a uma camada do Photoshop

A mesma abordagem da seção 1.1. pode ser usada para adicionar um logotipo ao PSD:



3.2. Posicionar o logotipo

A imagem carregada está aderida de perto ao canto superior esquerdo por padrão. No entanto, algumas margens precisam ser adicionadas para se parecer com a miniatura original do YouTube no canal. Portanto, a posição da imagem deve ser afastada das bordas da camada:



3.3. Adicionar um efeito de sombra (drop shadow) ao logotipo

O logotipo pode ficar invisível se uma imagem de fundo clara for usada. Portanto, é desejável adicionar um efeito de sombra (drop shadow) a um logotipo através da propriedade de opções de mistura (veja mais exemplos de sombreamento):



O efeito de sombra não possui as propriedades necessárias devido à configuração padrão (parece como a do Photoshop). No entanto, a sombra acima é modificada para se parecer com uma borda translúcida borrada nas bordas.

4. Adicionar um desenho de texto e uma forma

3.1. Criar uma camada de gráficos

O desenho não é suportado diretamente por uma camada regular. Portanto, o mecanismo gráfico é utilizado ao lado da camada para fornecer uma API para desenho (veja mais exemplos de desenho):

Layer graphicLayer = psdImage.addRegularLayer();
Graphics graphics = **new** Graphics(graphicLayer);

3.2. Desenhar texto multi-linha

Um leitor experiente pode perguntar: por que não usar uma camada de texto para adicionar um texto? Bem, existem algumas razões: a edição de texto não é necessária neste caso porque o PSD é gerado do zero a cada vez; a personalização da fonte não é suportada pela API de texto ainda (v20.6 no momento da escrita).

É fácil desenhar algum texto com uma fonte personalizada, basta instanciar uma fonte desejada e invocar o método correspondente do mecanismo gráfico. No entanto, para fazer um retângulo (veja detalhes na próxima seção) que mude sua altura automaticamente com base no número de linhas de texto é um pouco mais difícil. A altura exata de todas as linhas deve ser calculada primeiro:



Onde 1.15 é a altura da linha, 3 é o preenchimento do texto.

3.3. Desenhar um retângulo

Um retângulo também é fácil de desenhar até mesmo com um pincel de gradiente (basta definir uma área para desenhar e uma faixa de cores). Quando a altura do texto é conhecida, o tamanho e a posição do retângulo são calculados. Para desenhar um retângulo preenchido no psd (não apenas um quadro), chame o método correspondente do mecanismo gráfico com tudo isso:



 Onde 40, 15, 25 são recuos.

Resultado

Assim, a modelagem da miniatura está concluída. Portanto, é hora de exportar a miniatura para um formato de arquivo raster (por exemplo, PNG) para distribuição posterior:



Conclusão

Neste artigo, criamos um gerador de miniaturas do YouTube para o canal DW Documentary e explicamos como usar algumas das ferramentas compostas mais populares, como efeito de sombra, preenchimento de gradiente radial, desenho de texto e formas.

Exemplo Completo

Você pode baixar o SDK do Aspose.PSD