begin process at 2012 02 07 09:08:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > LIBSPRITE

LIBSPRITE


 Information sur la source

Note :
Aucune note
Catégorie :Graphique Source .NET ( DotNet ) Niveau :Débutant Date de création :01/08/2003 Date de mise à jour :01/08/2003 20:58:53 Vu / téléchargé :6 478 / 145

Auteur : sebseb42

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

ceci est une lib de manipulation d'image bmp tres tres simple pour le moment, mais qui est ammener a evoluer, elle est tres facile a utiliser :)

je m'etais servit de certaines parties pour ecrire un moteur 2d-animer temps-reel :)

il suffit de voir les prototypes pour vite comprendre :)

Source

  • void sprt_init_libsprite();
  • void sprt_init_sprite(t_sprite *sprt);
  • void sprt_create_sprite(int w, int h, t_sprite *sprt);
  • void sprt_delete_sprite(t_sprite *sprt);
  • void sprt_use_alpha();
  • void sprt_dont_use_alpha();
  • void sprt_set_alpha_value(t_rgb *alpha, int transparency_ratio);
  • void sprt_duplicate_sprite(t_sprite *dst, t_sprite *src);
  • void sprt_replace_color(t_sprite *sprt, t_rgb *ori_color, t_rgb *new_color);
  • void sprt_replace_color_by_range(t_sprite *sprt, t_rgb *ori_color_min, t_rgb *ori_color_max, t_rgb *new_color);
  • int sprt_load_sprite_from_bmp(char *filename, t_sprite *sprite);
  • int sprt_load_sprite_from_sprt(char *filename, t_sprite *sprite);
  • int sprt_write_sprite_to_bmp(char *filename, t_sprite *sprite);
  • int sprt_write_sprite_to_sprt(char *filename, t_sprite *sprite);
  • void sprt_paste_sprite(t_sprite *sp1, t_sprite *sp2);
  • void sprt_paste_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y);
  • void sprt_blend_sprite(t_sprite *sp1, t_sprite *sp2, uchar coef);
  • void sprt_blend_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y, uchar coef);
  • void sprt_blend_add_sprite(t_sprite *sp1, t_sprite *sp2);
  • void sprt_blend_add_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y);
  • void sprt_filter_red(t_sprite *sprt);
  • void sprt_filter_green(t_sprite *sprt);
  • void sprt_filter_blue(t_sprite *sprt);
  • void sprt_filter_inv_red(t_sprite *sprt);
  • void sprt_filter_inv_green(t_sprite *sprt);
  • void sprt_filter_inv_blue(t_sprite *sprt);
  • void sprt_filter_remove_red(t_sprite *sprt);
  • void sprt_filter_remove_green(t_sprite *sprt);
  • void sprt_filter_remove_blue(t_sprite *sprt);
  • void sprt_filter_remove_inv_red(t_sprite *sprt);
  • void sprt_filter_remove_inv_green(t_sprite *sprt);
  • void sprt_filter_remove_inv_blue(t_sprite *sprt);
  • void sprt_filter_blur(t_sprite *sprt);
void	sprt_init_libsprite();
void	sprt_init_sprite(t_sprite *sprt);
void	sprt_create_sprite(int w, int h, t_sprite *sprt);
void	sprt_delete_sprite(t_sprite *sprt);

void	sprt_use_alpha();
void	sprt_dont_use_alpha();
void	sprt_set_alpha_value(t_rgb *alpha, int transparency_ratio);

void	sprt_duplicate_sprite(t_sprite *dst, t_sprite *src);
void	sprt_replace_color(t_sprite *sprt, t_rgb *ori_color, t_rgb *new_color);
void	sprt_replace_color_by_range(t_sprite *sprt, t_rgb *ori_color_min, t_rgb	*ori_color_max, t_rgb *new_color);

int	sprt_load_sprite_from_bmp(char *filename, t_sprite *sprite);
int	sprt_load_sprite_from_sprt(char *filename, t_sprite *sprite);

int	sprt_write_sprite_to_bmp(char *filename, t_sprite *sprite);
int	sprt_write_sprite_to_sprt(char *filename, t_sprite *sprite);

void	sprt_paste_sprite(t_sprite *sp1, t_sprite *sp2);
void	sprt_paste_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y);

void	sprt_blend_sprite(t_sprite *sp1, t_sprite *sp2, uchar coef);
void	sprt_blend_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y, uchar coef);

void	sprt_blend_add_sprite(t_sprite *sp1, t_sprite *sp2);
void	sprt_blend_add_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y);

void	sprt_filter_red(t_sprite *sprt);
void	sprt_filter_green(t_sprite *sprt);
void	sprt_filter_blue(t_sprite *sprt);
void	sprt_filter_inv_red(t_sprite *sprt);
void	sprt_filter_inv_green(t_sprite *sprt);
void	sprt_filter_inv_blue(t_sprite *sprt);
void	sprt_filter_remove_red(t_sprite *sprt);
void	sprt_filter_remove_green(t_sprite *sprt);
void	sprt_filter_remove_blue(t_sprite *sprt);
void	sprt_filter_remove_inv_red(t_sprite *sprt);
void	sprt_filter_remove_inv_green(t_sprite *sprt);
void	sprt_filter_remove_inv_blue(t_sprite *sprt);

void	sprt_filter_blur(t_sprite *sprt);


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture KONKYO (ASM COMPILER, DECOMPILER, DEBUGGER, MACHINE VIRTUELL...
Source avec Zip CSOCKET
Source avec Zip CJOYPAD
MSGBOX DEBUG
CONSOLE COLOR

 Sources de la même categorie

Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi
Source avec Zip Source avec une capture XCOUPE : COUPE 2D par pop70

Commentaires et avis

Commentaire de Funto66 le 02/08/2003 10:46:51

Salut sebseb42,
ta lib a l'air sympa, mais... ça s'utilise comment ? J'ai rien vu pour ce qui est de l'affichage, c'est à nous de l'afficher en utilisant un t_sprite*, c'est ça ?
Ca serait sympa de rajouter une fonction du genre :
void sprt_draw_GL_sprt(t_sprite* sprite);
qui dessine le sprite avec OpenGL.
Voilà voilà, c'est un code vachement sympa sinon :)
Le truc que j'aie pas compris, c'est à quoi sert sprt_load_sprite_from_sprt().
STP, tu peux me dire comment on fait pour créer un .lib ? Merci.

Commentaire de Funto66 le 02/08/2003 10:49:42

Ah oui, j'ai oublié : ce serait sympa de mettre un exemple d'utilisation aussi ;)

Commentaire de HeeroYuhi le 03/08/2003 17:03:05

funto66,

pour cree un .lib avec Visual C++ 6 tu fai nouveau projet, tu choisi Win32 Static Library, tu met le nom du projet et tu clique sur OK.
Dans la fenetre qui apparait tu coche les options que tu veu.
ensuite tu insert un .cpp dans ton projet.
voila il ne te reste plus qu'a compiler ton code et tu obtient un .lib.
Pense a mettre le(s) .h necessaires au programmeur qui utilisera ta librairie(insertion des fichiers d'entete).

Commentaire de Funto66 le 04/08/2003 09:48:02

Merci HeeroYuhi ;)

Commentaire de sebseb42 le 17/08/2003 14:48:02

salut Funto66, tout d'abbord dsl de pas avoir repondu avant mais j'etais en vacances :)

pour l'affichage, je suis pas sure d'ecrire une fonction de se genre car il y a plusieures manieres d'afficher des texture en OpenGL, par exemple par un drawpixel brut, ou alos sur un objet Quad ou autres...

enfin j'ecrirais peut-etre les deux fonctions oui, pourquoi pas :)
mais sinon dans la structure t_sprite, il y a le champs sprite (uchar   *sprite) et ceci est le data de texture utilisable directement comme ca par OpenGL, par exemple si tu veux binder une texture, OpenGL n'aura besoin que de la largeur, la hauteur, et le data, dans la structure, tu as le w (width -> largeur) et h (height -> largeur) et sprite qui est le data... si jamais il te demande le depth (nombres de bit par pixels) et la, c'est que du 24 :)

sinon pour l'exemple, ca va etre un peu chaud etant donner que les plusieurs fonctions offre pas mal de possibililter, je peux pas tout montrer

mais sinon, si deja tu veux faire des test, tu peux faire des nouveaux sprites en en manipulant d'autres, et ensuite tu faire sprt_write_sprite_to_bmp et ensuite, bah tu peux visualiser ton sprite avec un viewer d'image :)

aussi la fonction sprt_load_sprite_from_sprt, bah c'est pour loader une image que tu aurais enregistrer au format sprt via la fonction sprt_write_sprite_to_sprt, c'est tout, mais l'avantage de ca, c'est que sprt_write_sprite_to_sprt va bcp plus vite que sprt_write_sprite_to_bmp car j'ecarte maintes infos non necessaire, et donc ensuite forcement, le chargement via sprt_load_sprite_from_sprt va aussi bcp plus vite car je ne charge que le stricte necessaire...

le resultat est exactment le meme ensuite, les sprites contienent strictement les meme donnes, que ce soit loader/writer depuis un bmp/sprt

voila, en esperant avoir pu t'aider :)

si il y a d'autres questions, surtout n'hesitez pas :)
merci a vous :)

Commentaire de Funto66 le 18/08/2003 11:41:19

Merci de ta réponse ;)
Donc le depth c'est du 24 => pas de couche Alpha ?
C'est dommage, si on veut faire de la transparence il faut se le faire soit même en éliminant les pixels d'une certaine couleur alors :(
Et c'est clair que le BMP enregistre des données inutiles.

Ben voilà, c'est tout ce que j'ai à dire :)
J'espère que t'as passé de bonnes vacances ;)

Commentaire de sebseb42 le 18/08/2003 13:58:10

ce que je voulais dire par 24 bits, c'est que le format bmp utiliser est 24 bits, il fut un temps ou le bmp 32 bits existais, mais apparament, ca c'est perdu, enfin bref, dans OpenGL, tu doit indiquer le type de donner que tu utilise pour quil sache comment les manipuler, apres, rien ne t'empeche d'utiliser l'alpha-blending d'OpenGL, et de plus...

void    sprt_use_alpha();
void    sprt_dont_use_alpha();
void    sprt_set_alpha_value(t_rgb *alpha, int transparency_ratio);

void    sprt_blend_sprite(t_sprite *sp1, t_sprite *sp2, uchar coef);
void    sprt_blend_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y, uchar coef);

void    sprt_blend_add_sprite(t_sprite *sp1, t_sprite *sp2);
void    sprt_blend_add_sprite_pos(t_sprite *sp1, t_sprite *sp2, int x, int y);

voila :)

ps : j'ai passer des super vacances, merci :)

Commentaire de Funto66 le 18/08/2003 16:26:04

Ah ok, donc ça reste possible mais il faut utiliser le colorkeying, et apparement c'est ta lib qui s'en charge. Ben c'est cool ;)

PS : de rien ;)

Commentaire de flashbios le 15/10/2003 08:13:27

HEEEEEEEEEEELp
Je suis tout nouveau,je commence juste la programation et je comprend absuolument pas comment on doit faire avec ton source.
Pouriez vous m'indiquer comment faire simplement merci.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales