{"id":627,"date":"2019-12-16T11:12:14","date_gmt":"2019-12-16T14:12:14","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=627"},"modified":"2019-12-16T11:12:16","modified_gmt":"2019-12-16T14:12:16","slug":"desenvolvendo-jogos-com-java-2","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/desenvolvendo-jogos-com-java-2\/","title":{"rendered":"Desenvolvendo Jogos com Java #2"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Conceitos de Imagem Digital:\nResolu\u00e7\u00e3o, Profundidade de Cor, Alpha e Layers<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JavaFX suporta os mais populares\nformatos de imagem digital, isto d\u00e1 a os game designers um tom de flexibilidade.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Desde o JavaFX 8 a API faz\nparte do Java 8 e 9, isto significa que o Java suporta estes formatos de imagens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algumas destes formatos de\nimagens est\u00e3o a\u00ed a d\u00e9cadas, como a CompuServe Graphics Information Format (GIF)\nou o amplamente utilizado Joint Photographic Experts Group (JPEG).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alguns formatos digitais no\nJavaFX s\u00e3o mais modernos; por exemplo, o Portable Network Graphics (PNG) \u00e9 o\nformato que iremos usar para nossos jogos porque \u00e9 um arquivo de alta qualidade.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Muitas destas imagens s\u00e3o\nsuportadas pelo Java e navegadores com HTML5, e Java apps pode ser utilizada dentro\nde HTML apps ou web sites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea pode usar uma biblioteca chamada\nImageJ, se precisar utilizar outros formatos de imagens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O formato mais antigo de imagem\ndigital \u00e9 o CompuServe GIF. O GIF \u00e9 um lossless que significa: que a imagem n\u00e3o\nperde qualidade se precisar compactar (<a href=\"https:\/\/techterms.com\/definition\/lossless\">https:\/\/techterms.com\/definition\/lossless<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A compress\u00e3o do GIF n\u00e3o tem um\nalgoritmo t\u00e3o poderoso quanto no formato PNG e o GIF s\u00f3 suporta o index color, o\nqual \u00e9 um item que se obt\u00e9m a compress\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se todas as imagens do seu jogo\ns\u00e3o GIF, voc\u00ea poder\u00e1 usar no Java sem problemas, mesmo sendo uma imagem com\nmenos capacidade de compress\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O formato de imagem mais popular\n\u00e9 suportado pelo Java via JavaFX, \u00e9 o JPEG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JPEG utiliza o \u201ctrue color\u201d color\ndepth, ao inv\u00e9s de um indexed color depth.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JPEG utiliza o lossy, a\ncompress\u00e3o de imagem digital. Isso ocorre porque o algoritmo de compacta\u00e7\u00e3o &#8220;Joga\nfora&#8221; os dados da imagem para que eles possam obter um tamanho de arquivo\nmenor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os dados da imagem s\u00e3o perdidos\npara sempre, ao menos que voc\u00ea salve a imagem original.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea ampliar uma imagem\ndepois da compress\u00e3o, voc\u00ea ver\u00e1 \u00e1reas descoloridas ou emba\u00e7adas, as quais n\u00e3o\nexistiam na imagem original.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As \u00e1reas que est\u00e3o modificadas\ns\u00e3o conhecidas na ind\u00fastria digital de imagens como compression artifacts. \u00c9\ncomum ocorrer o lossy na compress\u00e3o em JPEG (e MPEG).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O formato digital de imagem que\neu recomendo voc\u00ea utilizar \u00e9 o Portable Network Graphic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PNG tem duas vers\u00f5es de true-color,\num \u00e9 chamado de PNG24 e n\u00e3o pode ser usado na image compositing (<a href=\"http:\/\/paulbourke.net\/miscellaneous\/composite\/\">http:\/\/paulbourke.net\/miscellaneous\/composite\/<\/a>), e o outro\n\u00e9 PNG32 o qual carrega um alpha channel utilizado para definir transpar\u00eancia.\nH\u00e1 tamb\u00e9m um indexed (com o valor no m\u00e1ximo de 256) a vers\u00e3o colorida do formato\nPNG \u00e9 chamado PNG8.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O motivo de eu recomendar o\nPNG para o seu jogo \u00e9 porque o algoritmo de compress\u00e3o \u00e9 bom e tem o lossless.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isto significa que o PNG tem\numa grande qualidade de imagem e um n\u00edvel razo\u00e1vel de compress\u00e3o, isto vai\nfazer o seu jogo ter arquivos menores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O poder real do formato PNG32\n\u00e9 a habilidade para compor com outras imagens de jogos usando transpar\u00eancia e\nantialiasing (via alpha channel).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Anti-Aliasing \u00e9 um filtro, presente principalmente em jogos, que aumenta a ilus\u00e3o de que uma imagem \u00e9 \u201clisa\u201d, \u201cemba\u00e7ando\u201d as bordas de uma linha. Vendo de perto, a impress\u00e3o \u00e9 que as bordas do item est\u00e3o borradas; por\u00e9m, de longe a diferen\u00e7a de qualidade \u00e9 gritante. <a href=\"https:\/\/www.tecmundo.com.br\/video-game-e-jogos\/737-o-que-e-anti-aliasing-.htm\">https:\/\/www.tecmundo.com.br\/video-game-e-jogos\/737-o-que-e-anti-aliasing-.htm<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> Na linguagem da computa\u00e7\u00e3o, na forma mais usual de representa\u00e7\u00e3o cada um dos canais RGB utiliza 8 bits de dados para registrar os valores das cores, dando um total de 24 bits de informa\u00e7\u00e3o. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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\u00a0<em>n\u00e3o<\/em>\u00a0era utilizado para representar cores, e sim, para informar o grau de\u00a0<em>transpar\u00eancia<\/em>\u00a0que o pixel deveria ter quando a imagem ao qual ele pertencia fosse sobreposta a uma outra imagem. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O sistema recebeu o nome de RGBA, onde o &#8220;A&#8221; representa o nome deste canal adicional, o canal alfa, ou\u00a0<em>alpha channel<\/em>. <a href=\"http:\/\/www.fazendovideo.com.br\/artigos\/alpha-channel-a-transparencia-das-imagens.html\">http:\/\/www.fazendovideo.com.br\/artigos\/alpha-channel-a-transparencia-das-imagens.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Conceitos de Imagem Digital: Resolu\u00e7\u00e3o, Profundidade de Cor, Alpha e Layers JavaFX suporta os mais populares formatos de imagem digital, isto d\u00e1 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":297,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,26],"tags":[],"class_list":["post-627","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jogos","category-programacao"],"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=627"}],"version-history":[{"count":1,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/627\/revisions"}],"predecessor-version":[{"id":628,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/627\/revisions\/628"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/297"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}