AIMG-mostrar imagem fraquimentada em pontos aleatórios
Publicado por Samuel Leonardo 09/12/2008
[ Hits: 6.207 ]
Homepage: https://nerdki.blogspot.com.br/
Download AIMG-imagem fraquimentada.tar.gz
Este script mostra como "despedaçar" uma imagem, no formato bmp, na tela usando a liSDL, mostrando antes por 3 segundos a imagem original.
Acompanha uma versão pré-compilada para download e o WallPapper linux.6.bmp.
ATENÇÃO: é preciso ter antes os arquivos de desenvolvimento da libSDL instalados.
Para compilar: gcc -o imagem imagem.c -lSDL
Para exzecutar: ./imagem
Visitem meus outros scripts:
http://www.vivaolinux.com.br/scripts/userview.php?login=Sam%20L.
BAIXE TAMBÉM UMA APOSTILA EXCELENTE SOBRE DESENVOVIMENTO DE JOGOS COM SDL:
http://silveira.wordpress.com/2006/09/21/apostila-de-desenvolvimento-de-jogos/
t+!!!
/*
Este script mostra como "despedaçar" uma imagem, no formato bmp, na tela usando a liSDL,
mostrando antes por 3 segundos a imagem original.
Acompanha uma versão pre-compilada para download e o WallPapper linux.6.bmp.
ATENÇÃO: você precisam ter antes os arquivos de desenvolvimento da libSDL instalados.
para compilar: gcc -o imagem imagem.c -lSDL
para exzecutar: ./imagem
visitem meus outros scripts:
http://www.vivaolinux.com.br/scripts/userview.php?login=Sam%20L.
BAIXE TBM UM APOSTILA EXCELENTE SOBRE DESENVOVIMENTO DE JOGOS COM SDL:
http://silveira.wordpress.com/2006/09/21/apostila-de-desenvolvimento-de-jogos/
t+!!!
*/
#include <stdio.h>
#include <SDL/SDL.h>
/*numero de imagens mostrada a cada 500 milisegundos */
#define NUMRECT 20 /*OBS: QUANTO MAIOR FOR NUMRECT, MENORES SÃO OS FRAQUIMENTOS*/
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *screen, *foto;
foto = SDL_LoadBMP("linux.6.bmp");
if(!foto) printf("ERRO: %s\n",SDL_GetError());
screen = SDL_SetVideoMode(foto->w, foto->h, 0, SDL_ANYFORMAT | SDL_SWSURFACE | SDL_HWSURFACE);
if(!screen)
{
printf("ERRO: %s",SDL_GetError());
SDL_Quit();
return -1;
}
SDL_Rect destino, fonte;
fonte = (SDL_Rect){0,0,(int)(foto->w/NUMRECT),(int)(foto->h/NUMRECT)};
destino = (SDL_Rect){0,0,(int)(foto->w/NUMRECT),(int)(foto->h/NUMRECT)};
int fim=0, acres_y=4, acres_x=4;
int i, j;
SDL_Event evento;
SDL_BlitSurface(foto, NULL, screen, NULL);
SDL_Flip(screen);
SDL_Delay(3000);
while(!fim)
{
while(SDL_PollEvent(&evento)) if(evento.type == SDL_QUIT) fim=1;
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,0,0,0));
for(i=0;i<foto->w/NUMRECT;i++)
{
fonte.x = i*fonte.w;
for(j=0;j<foto->h/NUMRECT;j++)
{
fonte.y = j*fonte.h;
/* POSIÇÕES ALEATORIAS DAS IMAGENS */
destino.x = random()%(foto->w - fonte.w) + acres_x;
destino.y = random()%(foto->h - fonte.h) + acres_y;
/* 'COLAGEM' DAS IMAGENS EM POSIÇÕES ALEATÓRIAS */
SDL_BlitSurface(foto, &fonte, screen, &destino);
}
}
/* ATUALIZANDO A TELA INTEIRA */
SDL_Flip(screen);
/* AGUARDANDO 500ms ATÉ O PRÓXIMO LOOP */
SDL_Delay(500);
}
SDL_Quit();
return 0;
}
Classe para manipulação e conversão de datas para std::string em C++
Joguinho de labirinto usando as setas do teclado
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)
Secure boot, artigo interessante, nada técnico. (5)
VOL já não é mais como antes? (9)
É normal não gostar de KDE? (13)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)









