Monthly Archives: December 2007

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[1]);
    allegro_message("%i", atoi(argv[2]));
    allegro_message(argv[3]);*/

    ColorTransform(argv[1], makecol(atoi(argv[2]), atoi(argv[3]), atoi(argv[4])), argv[5]);

    //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 : , , , ,

Google Buzz

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

Google Buzz

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

Google Buzz