Conceitos de Imagem Digital: Resolução, Profundidade de Cor, Alpha e Layers
JavaFX suporta os mais populares formatos de imagem digital, isto dá a os game designers um tom de flexibilidade.
Desde o JavaFX 8 a API faz parte do Java 8 e 9, isto significa que o Java suporta estes formatos de imagens.
Algumas destes formatos de imagens estão aí a décadas, como a CompuServe Graphics Information Format (GIF) ou o amplamente utilizado Joint Photographic Experts Group (JPEG).
Alguns formatos digitais no JavaFX são mais modernos; por exemplo, o Portable Network Graphics (PNG) é o formato que iremos usar para nossos jogos porque é um arquivo de alta qualidade.
Muitas destas imagens são suportadas pelo Java e navegadores com HTML5, e Java apps pode ser utilizada dentro de HTML apps ou web sites.
Você pode usar uma biblioteca chamada ImageJ, se precisar utilizar outros formatos de imagens.
O formato mais antigo de imagem digital é o CompuServe GIF. O GIF é um lossless que significa: que a imagem não perde qualidade se precisar compactar (https://techterms.com/definition/lossless).
A compressão do GIF não tem um algoritmo tão poderoso quanto no formato PNG e o GIF só suporta o index color, o qual é um item que se obtém a compressão.
Se todas as imagens do seu jogo são GIF, você poderá usar no Java sem problemas, mesmo sendo uma imagem com menos capacidade de compressão.
O formato de imagem mais popular é suportado pelo Java via JavaFX, é o JPEG.
JPEG utiliza o “true color” color depth, ao invés de um indexed color depth.
JPEG utiliza o lossy, a compressão de imagem digital. Isso ocorre porque o algoritmo de compactação “Joga fora” os dados da imagem para que eles possam obter um tamanho de arquivo menor.
Os dados da imagem são perdidos para sempre, ao menos que você salve a imagem original.
Se você ampliar uma imagem depois da compressão, você verá áreas descoloridas ou embaçadas, as quais não existiam na imagem original.
As áreas que estão modificadas são conhecidas na indústria digital de imagens como compression artifacts. É comum ocorrer o lossy na compressão em JPEG (e MPEG).
O formato digital de imagem que eu recomendo você utilizar é o Portable Network Graphic.
PNG tem duas versões de true-color, um é chamado de PNG24 e não pode ser usado na image compositing (http://paulbourke.net/miscellaneous/composite/), e o outro é PNG32 o qual carrega um alpha channel utilizado para definir transparência. Há também um indexed (com o valor no máximo de 256) a versão colorida do formato PNG é chamado PNG8.
O motivo de eu recomendar o PNG para o seu jogo é porque o algoritmo de compressão é bom e tem o lossless.
Isto significa que o PNG tem uma grande qualidade de imagem e um nível razoável de compressão, isto vai fazer o seu jogo ter arquivos menores.
O poder real do formato PNG32 é a habilidade para compor com outras imagens de jogos usando transparência e antialiasing (via alpha channel).
O Anti-Aliasing é um filtro, presente principalmente em jogos, que aumenta a ilusão de que uma imagem é “lisa”, “embaçando” as bordas de uma linha. Vendo de perto, a impressão é que as bordas do item estão borradas; porém, de longe a diferença de qualidade é gritante. https://www.tecmundo.com.br/video-game-e-jogos/737-o-que-e-anti-aliasing-.htm
Na linguagem da computação, na forma mais usual de representação cada um dos canais RGB utiliza 8 bits de dados para registrar os valores das cores, dando um total de 24 bits de informação.
No novo sistema acrescentava-se mais um canal de 8 bits como os demais, criando-se assim o formato RGB com 32 bits. Este canal adicional não era utilizado para representar cores, e sim, para informar o grau de transparência que o pixel deveria ter quando a imagem ao qual ele pertencia fosse sobreposta a uma outra imagem.
O sistema recebeu o nome de RGBA, onde o “A” representa o nome deste canal adicional, o canal alfa, ou alpha channel. http://www.fazendovideo.com.br/artigos/alpha-channel-a-transparencia-das-imagens.html
Deixe um comentário