Colorizador de Imagens

Eu, quando não tinha o que fazer (normal), resolvi então criar um programinha para mudar a cor base da Imagem.

Vejam como fica uma imagem alterada com ele:

,

Utilizei a cor: RGB(20 20 255) como base.

O que o programa faz? Ele tira a cor da imagem, então ele blita esta certa cor com um nível de transparência encima da imagem, dando este efeito de uma cor base… Nada de interessante, mas talvez seja útil para alguém… Mas acho que não criar outra imagem, e sim fazer isso e utilizar o bitmap modificado no jogo (sem salvar)…

Ele funcniona em Linha de comando, basta você chamar ele assim: ColorImage EvilAnt.bmp 20 20 255 Teste.bmp, o nome do programa, depois o da imagem a modificar, depois os parâmetros de cores (RGB) e então a imagem a ser criada…

Código:

#include <allegro.h>

void Init();

void ColorTransform(const char *file, int color, const char *file_save);
BITMAP *TiraCor(BITMAP *bmp);

int main (int argc, char *argv[])
{
    if (argc < 5)
    {
        allegro_message("Erro os argumentos...");
        exit(-1);
    }
    Init();

    /*allegro_message(argv&#91;1&#93;);
    allegro_message("%i", atoi(argv&#91;2&#93;));
    allegro_message(argv&#91;3&#93;);*/

    ColorTransform(argv&#91;1&#93;, makecol(atoi(argv&#91;2&#93;), atoi(argv&#91;3&#93;), atoi(argv&#91;4&#93;)), argv&#91;5&#93;);

    //readkey();

    allegro_exit();

    return 0;
}END_OF_MAIN()

void Init()
{
    allegro_init();
    install_keyboard();

    set_color_depth(32);
    //set_gfx_mode(GFX_AUTODETECT_WINDOWED, 320, 240, 0, 0);

    set_window_title("ColorTransform - by CrociDB");
}

void ColorTransform(const char *file, int color, const char *file_save)
{
    BITMAP *open = load_bitmap(file, NULL);
    if (!open)
    {
        allegro_message("Problema ao carregar o arquivo...");
        exit(-1);
    }

    BITMAP *fim = TiraCor(open);

    BITMAP *cor = create_bitmap(fim->w, fim->h);
    clear_to_color(cor, color);

    set_trans_blender(255,255,255,70);
    draw_trans_sprite(fim, cor, 0, 0);

    int cor2 = getpixel(fim, 0, 0);
    int cor1;

    int i, j;
    for (i = 0; i < fim->w; i++)
    {
        for (j = 0; j < fim->h; j++)
        {
            cor1 = getpixel(fim, i, j);
            if (cor1 == cor2)
                putpixel(fim, i, j, 0xFF00FF);
        }
    }

    save_bitmap(file_save, fim, NULL);
}

BITMAP *TiraCor(BITMAP *bmp)
{
    BITMAP *fim = create_bitmap(bmp->w, bmp->h);

    int r, g, b, cor, cor2;

    int i, j;
    for (i = 0; i < bmp->w; i++)
    {
        for (j = 0; j < bmp->h; j++)
        {
            cor = getpixel(bmp, i, j);
            r = getr(cor);
            g = getg(cor);
            b = getb(cor);

            cor = (r+g+b)/3;
            putpixel(fim, i, j, makecol(cor, cor, cor));
        }
    }

    return fim;
}

Peço novamente desculpas pelo mal-código, mas foi um teste mesmo. ^^

Flw


Technorati : , , , ,

Muitos posts, poucos dias…

Tem dias que, como hoje, me dá uma imensa vontade de postar, e para completar, eu só vejo coisas interessantes, seja na internet, nas minhas coisas, aí eu vou postando…

Não se se é muito chato isso, ficar uma semana sem nada, e daí um dia, do nada, eu posto uns 10 artigos. Mas acho que muito chato não deve ser né?

Só para avisar, hoje vocês ainda vão ver mais alguns posts! hehehe

Vlww

Gadget de Busca da UniDev

Eu estava dando umas ‘zoiadas’ nas APIs do Google, como o OpenSocial, e então me deu uma vontade de fazer aqueles Gadgets que tem no iGoogle, que eu uso bastante! xD

Inicialmente estava totalmente sem idéias, mas até que me veio a idéia de fazer um GadGet de busca para a UniDev! Com ele você pode buscar por tudo da UniDev, como artigos, notícias e o fórum, diretamente pela sua página do iGoogle! Ou então simplismente adicionar o Gadget ao seu site, ou blog!

Veja a imagem do Gadget no Google:

Para adicionar no seu Google, Clique aqui!

Mas caso queira adicionar o GadGet no seu blog ou site, basta adicionar o seguinte código:

<script src="http://gmodules.com/ig/ifr?url=http://hosting.gmodules.com/ig/gadgets/file/103746234400150097848/UniDev_Finder.xml&up_mylang=pt&synd=open&w=256&h=140&title=Buscador+UniDev&lang=pt-BR&country=ALL&border=http%3A%2F%2Fgmodules.com%2Fig%2Fimages%2F&output=js"></script>

Ficará assim:

Não sei se isso vai ser muito útil né, mas vale a intenção! =D

Flw

Jogos Fracassados de 2007

Depois dos meus joguinhos, os mais fracassados, segundo o G1, foram esses aqui:

  1. Manhunt 2 – PS2, PSP e Wii
  2. Vampire Rain – Xbox 360
  3. Deal or no Deal – DS (Topa ou Não topa – Copiado pelo SBT! hehehe)
  4. Lair – PS3
  5. Escape from Bug Island – Wii (eu precisava de “Escape from Bugs on my Games”! ahhahaha)

Pois é! Olhando as imagens, até parecem ser bons jogos, mas nem faço idéia, mesmo por que os únicos consoles que já tive, e tenho são um Atari (era da minha mãe ¬¬) e um Super Nintendo!

E no artigo original, eles também mostram alguns games que decepcionaram, como o Halo3, Assassin’s Creed, Blue Dragon, entre outros, e alguns jogos que tem que serem aposentados, como a série Tony Hawk, que eu jogava bastante, sempre fui fã da série, mas faz muito tempo que não jogo nenhum!

[Via G1]

E lá vou eu para o Mobile!

Eu já fiz bastantes testes com o J2ME, já entendi bastante como funciona o negócio, agora então vou fazer um jogo!

Vou fazer um jogo bem simples, um clone do “Jokenpo”, pedra, papel e tesoura! Eu fiz um jogos desses uma vez na escola, no técnico, enquanto tinha que estudar para alguma prova da certificação CISCO ( x( ), eu estava com uma grande preguiça, então abri o eclipse e fiz um bem simples em java, aí eu estava navegando nos meus arquivos esses dias, e então achei, aí me deu essa idéia…

O nome do jogo vai ser Pepate, como vocês podem ver, é por causa das inicias dos três objetos do jogo… hehehe

Claro, que os fontes serão livres, então assim que terminar, eu posto aqui o código (pretendo comentar ^^), e quem sabe algum tutorial sobre alguma coisa nele… hihihi

Valeu

Aprendendo Allegro (2)

Eu já postei um artigo com alguns tutoriais de allegro, porém eu esqueci dos tutoriais da BDJ!

Já conhecia este site, mas nunca tinha percebido o quão bom são os tutoriais, vale muito a pena acessá-los, se você quiser aprender Allegro. Se eles existissem na época que eu aprendi, concerteza eu teria aprendido bem mais rápido.

Acesse já, e veja que você pode evitar muitas perguntas repetidas em fórums, como o da UniDev, PDJ ou o da BDJ mesmo! =D

Google GWT

Eu andei dando uma pesquisada nessa ferramenta, e não é que estou gostando?

Bom, o GWT é um Framework do Google, que auxilia o desenvolvimento com AJAX. Com ele, você programa em Java, como se estivesse programando com a biblioteca de GUI AWT e ele transforma o seu código java para Javascript. É bom para quem está acostumado com o Java, e por que facilita bastante a construção de aplicações de grande porte para a Internet, que, fazendo diretamente em Javascript seria “saco”. Ele suporta todos os browsers, sem precisar fazer rotinas adicionais para configurar isso…

Eu estou gostando dele, porém achei uma coisa meio chata, para fazer uma simples “calculadora”, em que se coloca dois números em caixas de texto diferentes e clicando em um botão ele dá o resultado da soma, por exemplo, ele criou vários arquivos, que somando davam mais de 200Kb! Coisa que eu faria com um arquivo apenas em menos de 10Kb. Mas eu espero que esse tamanho não cresca muito! heehhe

Mas eu vi também, que a nova versão, que vai sair agora no começo do ano, vai ter seus códigos otimizados, segundo eles, que nem um humano poderia criar, então estamos esperando né… xD

Enquanto não chega essa nova versão, eu continuo testando essa aqui, e vou ver se logo logo posto algum tutorial bem simples, quem sabe esse aqui da calculadora mesmo! xD