structure en pure C et raylib
oblerion Il y a 2 semaines Premium Pro - Adhésion à vie0

Mon projet éditeur d’image est découper en deux structure, une pour chaque écran:

struct image_view
{
  char file_name[55]; //chemin du fichier charger
  Vector2 pos_img; //position de l'image
  Rectangle pos_cur; //position et taille du curseur
  Image img; //donnée de l'image
};

struct image_editor{
 Vector2 pos; //position de l'image editer
 float rot,scale; //transformation de l'image
 int tile,w,h,format; //data image taille format
 int cur_x,cur_y,cur_w,cur_h; //position et taille curseur
 Color colPixel; //couleur du curseur
 Color* data; //data image liste Color
 int file_load; //si image charger 1/0
};

Note: Vector2,Rectangle,Image,Color,Texture2D sont des structures de raylib.h .

Je n’utilise pas de structure Texture2D car elle n’est pas conçue pour être modifier.
Voici la structure Image :
struct Image {
int mipmaps;// niveau de Mipmap=1 ???

 int width;//largeur
 int height;//hauteur
 int format;// id de format d'encodage des pixels
 void* data; //liste de couleur des pixels
};

On pourrai lire les pixel grâce à Image.data[y*Image.width+x] = Color ,mais à cause de différence entre l’un ou l’autre format de pixel entre deux image c’est déconseiller.

Elle a l’avantage d’avoir deux fonctions pour lire et écrire les pixels dans sa liste data,
elles convertissent les couleurs en fonction du format d’image.

Color GetImageColor(Image* img, int x ,int y); //récupérer la couleur d’un pixel en x y

void ImageDrawPixel(Image img, int x, int y, Color col);// éditer un pixel en x y avec la couleur col

Note : les structures sont définie comme plus haut et sont comme des types de variable, elle ressemble a des conteneurs de variable.

exemple:

déclaration

struct mystruct{

int a;

};

utilisation

struct mystruct m; //variable m du type mystruct

m.a=2;

ou

typedef struct mystruct ms; //crée un type ms du type mystruct

ms m;// variable m du type ms

m.a=2;

Note: si vous n’utiliser pas de typedef , vous devez écrire struct avant chaque mention de votre structure.

Raylib ne permet pas d’afficher une image a partir d’une structure Image,

nous allons créer notre propre système d’affichage.

Afficher une image avec une structure Image : … a suivre

 

 

 

 

 

 

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.