{"id":593,"date":"2021-03-05T09:18:00","date_gmt":"2021-03-05T09:18:00","guid":{"rendered":"http:\/\/www.goncalo.pt\/por\/?p=593"},"modified":"2023-10-07T03:12:47","modified_gmt":"2023-10-07T03:12:47","slug":"2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c","status":"publish","type":"post","link":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/","title":{"rendered":"2021-03-05 &#8211; Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++&#8230;"},"content":{"rendered":"\n<p>O que v\u00eaem aqui sou eu a tentar criar o meu pr\u00f3prio algoritmo de convers\u00e3o de cores RGB para indexed-256, pois decidi com o premir de uma tecla, gravar um v\u00eddeo em formato GIF para partilhas de v\u00eddeos do meu jogo, e resolvi criar o meu pr\u00f3prio algoritmo de compress\u00e3o e redu\u00e7\u00e3o de cores, do zero.<\/p>\n\n\n\n<p>A passagem para 256 cores gray-scale \u00e9 f\u00e1cil, pois n\u00e3o nos podemos basear simplesmente no &#8220;brilho&#8221; que cada p\u00edxel tem, e assim convertem-se 3 bytes de cor (R+G+B), ou talvez 4 (RGBA OU ABGR) para um \u00fanico valor de 1 a 256 em termos de tonalidade.<\/p>\n\n\n\n<p>O complicado \u00e9 quando convertemos 3 valores ou 4, tipo R+G+B+A onde cada um tem 256 valores poss\u00edveis, dando origem a milh\u00f5es de poss\u00edveis valores, a apenas 256.<\/p>\n\n\n\n<p>O m\u00e9todo tradicional n\u00e3o compensa, tem de ser algo complexo. Por um lado n\u00e3o podem fazer s\u00f3 pelas cores mais usadas, fiz isso para tirar print e mostrar, e acima podem ver como fica, tudo vermelho pois as 256 cores s\u00e3o com base no vermelho, as mais usadas.<\/p>\n\n\n\n<p>Por outro, a proximidade pode falhar tamb\u00e9m (imitar cores de p\u00edxeis pr\u00f3ximos), etc. Temos de ter em conta as mais usadas, as menos, as proximidades, e 1001 factores.<\/p>\n\n\n\n<p>O primeiro passo foi reduzir a imagem para algo que tivesse s\u00f3 umas 400 cores, est\u00e1 \u00e0 direita, s\u00f3 se via a cabe\u00e7a do boneco, e no come\u00e7o desenhar os primeiros 256 valores, e depois aplicar algoritmos, e ir aumentando a imagem.<\/p>\n\n\n\n<p>\u00c9 importante referir que h\u00e1 uma grande diferen\u00e7a entre imagens RGBA onde cada p\u00edxel tem 4 bytes dedicados \u00e0s cores, e as indexadas tipo GIFs. Nas indexadas, cada p\u00edxel tem um valor para uma palete que \u00e9 criada por n\u00f3s onde cada valor corresponde aos bytes de cores que queremos, ou seja, cada p\u00edxel tem o seu pr\u00f3prio Red, Green, Blue e Alpha Transparency, cada um de 0 a 255.<\/p>\n\n\n\n<p>Assim, fica mais complicado, no ficheiro de imagem, al\u00e9m de correspondermos cada p\u00edxel a um valor, temos de incluir a palete de cores, s\u00f3 do RGB seriam 768 bytes, para depois o programa que abre a imagem saber a que R+G+B corresponde cada p\u00edxel.<\/p>\n\n\n\n<p>Giro n\u00e3o?<\/p>\n\n\n\n<p>Confesso que, j\u00e1 tenho isto a criar gifs animados, a P\/B e at\u00e9 a cores, com o premir de uma tecla no jogo, mas o meu algoritmo de cores, confesso que ainda est\u00e1 atr\u00e1s dos que vejo no mercado.<\/p>\n\n\n\n<p>Como n\u00e3o vale a pena de momento reinventar a roda totalmente, vou usar os algoritmos conhecidos para as cores, e um dia se tiver tempo livre, volto a desenvolver o meu de cores, at\u00e9 porque hoje em dia me falta muito o tempo.<\/p>\n\n\n\n<p>O importante \u00e9 conseguir tirar as anima\u00e7\u00f5es com o premir de uma tecla, e isso j\u00e1 consigo. <img loading=\"lazy\" decoding=\"async\" alt=\"?\" src=\"https:\/\/static.xx.fbcdn.net\/images\/emoji.php\/v9\/t4c\/1\/16\/1f642.png\" width=\"16\" height=\"16\"><\/p>\n\n\n\n<p>2021-03-05.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que v\u00eaem aqui sou eu a tentar criar o meu pr\u00f3prio algoritmo de convers\u00e3o de cores RGB para indexed-256,<\/p>\n","protected":false},"author":1,"featured_media":594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,21,284,5,3,4,133],"tags":[7,155,118,207,24,23,146,15,117,281,120,26,25,319],"class_list":["post-593","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-game-development","category-matematica","category-platformers","category-programacao","category-projectos","category-softwares","category-video-jogos","tag-c","tag-cores","tag-desenvolvimento-de-jogos","tag-dev","tag-game-dev","tag-game-engine","tag-gif","tag-matematica","tag-motor-de-jogos","tag-platformer","tag-programacao","tag-videogames","tag-videojogos","tag-videos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++... - Gon\u00e7alo Ferreira<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++... - Gon\u00e7alo Ferreira\" \/>\n<meta property=\"og:description\" content=\"O que v\u00eaem aqui sou eu a tentar criar o meu pr\u00f3prio algoritmo de convers\u00e3o de cores RGB para indexed-256,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Gon\u00e7alo Ferreira\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-05T09:18:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-07T03:12:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp-1024x576.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"gnmf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"gnmf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/\"},\"author\":{\"name\":\"gnmf\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd\"},\"headline\":\"2021-03-05 &#8211; Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++&#8230;\",\"datePublished\":\"2021-03-05T09:18:00+00:00\",\"dateModified\":\"2023-10-07T03:12:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/\"},\"wordCount\":513,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000\",\"keywords\":[\"C++\",\"Cores\",\"Desenvolvimento de Jogos\",\"Dev\",\"Game Dev\",\"Game Engine\",\"Gif\",\"Matem\u00e1tica\",\"Motor de Jogos\",\"Platformer\",\"Programa\u00e7\u00e3o\",\"VideoGames\",\"VideoJogos\",\"V\u00eddeos\"],\"articleSection\":[\"Desenvolvimento de Jogos\",\"Matem\u00e1tica\",\"Platformers\",\"Programa\u00e7\u00e3o\",\"Projectos\",\"Softwares\",\"Video Jogos\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/\",\"url\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/\",\"name\":\"2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++... - Gon\u00e7alo Ferreira\",\"isPartOf\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000\",\"datePublished\":\"2021-03-05T09:18:00+00:00\",\"dateModified\":\"2023-10-07T03:12:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage\",\"url\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000\",\"contentUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000\",\"width\":1920,\"height\":1080,\"caption\":\"2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++...\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.goncalo.pt\/por\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"2021-03-05 &#8211; Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++&#8230;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#website\",\"url\":\"https:\/\/www.goncalo.pt\/por\/\",\"name\":\"Gon\u00e7alo Ferreira\",\"description\":\"[Game Engine\/Software\/Simulation\/Trading Systems\/Full Stack] Developer, Musician, Composer, Painter, Writer, IT Trainer, Sys Admin, Ex-Trader, Skater, Strongman, Vegan, Self-Taught Neuro-Divergent Polymath, and 1001 things more. Welcome to my world!\",\"publisher\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.goncalo.pt\/por\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#organization\",\"name\":\"Gon\u00e7alo Ferreira\",\"url\":\"https:\/\/www.goncalo.pt\/por\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png\",\"contentUrl\":\"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png\",\"width\":389,\"height\":90,\"caption\":\"Gon\u00e7alo Ferreira\"},\"image\":{\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/www.linkedin.com\/in\/GoncaloPT\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd\",\"name\":\"gnmf\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g\",\"caption\":\"gnmf\"},\"sameAs\":[\"http:\/\/www.goncalo.pt\/por\"],\"url\":\"https:\/\/www.goncalo.pt\/por\/author\/gnmf\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++... - Gon\u00e7alo Ferreira","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/","og_locale":"en_US","og_type":"article","og_title":"2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++... - Gon\u00e7alo Ferreira","og_description":"O que v\u00eaem aqui sou eu a tentar criar o meu pr\u00f3prio algoritmo de convers\u00e3o de cores RGB para indexed-256,","og_url":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/","og_site_name":"Gon\u00e7alo Ferreira","article_published_time":"2021-03-05T09:18:00+00:00","article_modified_time":"2023-10-07T03:12:47+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp-1024x576.png","type":"image\/png"}],"author":"gnmf","twitter_card":"summary_large_image","twitter_misc":{"Written by":"gnmf","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#article","isPartOf":{"@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/"},"author":{"name":"gnmf","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd"},"headline":"2021-03-05 &#8211; Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++&#8230;","datePublished":"2021-03-05T09:18:00+00:00","dateModified":"2023-10-07T03:12:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/"},"wordCount":513,"commentCount":0,"publisher":{"@id":"https:\/\/www.goncalo.pt\/por\/#organization"},"image":{"@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000","keywords":["C++","Cores","Desenvolvimento de Jogos","Dev","Game Dev","Game Engine","Gif","Matem\u00e1tica","Motor de Jogos","Platformer","Programa\u00e7\u00e3o","VideoGames","VideoJogos","V\u00eddeos"],"articleSection":["Desenvolvimento de Jogos","Matem\u00e1tica","Platformers","Programa\u00e7\u00e3o","Projectos","Softwares","Video Jogos"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/","url":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/","name":"2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++... - Gon\u00e7alo Ferreira","isPartOf":{"@id":"https:\/\/www.goncalo.pt\/por\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage"},"image":{"@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000","datePublished":"2021-03-05T09:18:00+00:00","dateModified":"2023-10-07T03:12:47+00:00","breadcrumb":{"@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#primaryimage","url":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000","contentUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2021\/04\/2021-03-05-Creating-color-quantization-algorithms-for-rgba-to-i256-color-conversion-for-gif-creation-in-C-Cpp.png?v=1618147000","width":1920,"height":1080,"caption":"2021-03-05 - Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++..."},{"@type":"BreadcrumbList","@id":"https:\/\/www.goncalo.pt\/por\/2021\/03\/05\/2021-03-05-criando-um-algoritmo-de-conversao-de-cores-rgba-para-indexed-256-para-a-criacao-de-gifs-no-meu-game-engine-em-c-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.goncalo.pt\/por\/"},{"@type":"ListItem","position":2,"name":"2021-03-05 &#8211; Criando um algoritmo de convers\u00e3o de cores RGBA para Indexed-256 para a cria\u00e7\u00e3o de Gifs no meu Game Engine em C\/C++&#8230;"}]},{"@type":"WebSite","@id":"https:\/\/www.goncalo.pt\/por\/#website","url":"https:\/\/www.goncalo.pt\/por\/","name":"Gon\u00e7alo Ferreira","description":"[Game Engine\/Software\/Simulation\/Trading Systems\/Full Stack] Developer, Musician, Composer, Painter, Writer, IT Trainer, Sys Admin, Ex-Trader, Skater, Strongman, Vegan, Self-Taught Neuro-Divergent Polymath, and 1001 things more. Welcome to my world!","publisher":{"@id":"https:\/\/www.goncalo.pt\/por\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.goncalo.pt\/por\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.goncalo.pt\/por\/#organization","name":"Gon\u00e7alo Ferreira","url":"https:\/\/www.goncalo.pt\/por\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/","url":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png","contentUrl":"https:\/\/www.goncalo.pt\/por\/wp-content\/uploads\/2023\/08\/cropped-Goncalo-Ferreira-Logo-With-Face.png","width":389,"height":90,"caption":"Gon\u00e7alo Ferreira"},"image":{"@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.linkedin.com\/in\/GoncaloPT\/"]},{"@type":"Person","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/28a9f845c4de91a7c067707279b1d8dd","name":"gnmf","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.goncalo.pt\/por\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/78a295ef7300b60da1d67d4ce84359da?s=96&d=mm&r=g","caption":"gnmf"},"sameAs":["http:\/\/www.goncalo.pt\/por"],"url":"https:\/\/www.goncalo.pt\/por\/author\/gnmf\/"}]}},"_links":{"self":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts\/593"}],"collection":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/comments?post=593"}],"version-history":[{"count":1,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts\/593\/revisions"}],"predecessor-version":[{"id":595,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/posts\/593\/revisions\/595"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/media\/594"}],"wp:attachment":[{"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/media?parent=593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/categories?post=593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.goncalo.pt\/por\/wp-json\/wp\/v2\/tags?post=593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}