Genere bmp

Soyez le premier à donner votre avis sur cette source.

Vue 3 689 fois - Téléchargée 281 fois

Description

Name: GenBMP
Copyright: 0.1
Author: Lajouad Rachid
Date: 05/12/11 17:35
Description:
Générer un fichier bitmap d'une manière aléatoire de taille 800x600
en calculant aléatoirement les différents pixels.

Source / Exemple :


/*
  Name: GenBMP
  Copyright: 0.1
  Author: Lajouad Rachid
  Date: 05/12/11 17:35
  Description: 
               Générer un fichier bitmap d'une manière aléatoire de taille 800x600
               en calculant aléatoirement les différents pixels.

  • /
# include <stdio.h> # include <stdlib.h> # include <time.h> # define Lsize 800 # define Hsize 600 //L'image int Layout[Hsize][Lsize]; char HeadFile[14] = {0x42,0x4D,0x36,0x53,0x07,0x00,0x00, 0x00,0x00,0x00,0x36,0x00,0x00,0x00}; /*signature : 2octets, taille totale : 4octets, reserved : 4 octets, Offset : 4octets Taille entete fichier : 14 octets*/ char HeadBitmap[40] = {0x40,0x00,0x00,0x00,0x20,0x03,0x00,0x00,0x58,0x02, 0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x00,0x00, 0x36,0x53,0x07,0x00,0xC4,0x0E,0x00,0x00,0xC4,0x0E, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; /*taille entete = 4 octets, largeur : 4 octets, Hauteur : 4 octets, plans : 2 octets (vaut 01) couleur : 2 octets, Compression : 4 octets (0 : aucune compression), taille totale : 4 octets, res Horozontale : 4 octets pix/m, res Verticale : 4 octets pix/m, Palette nbr couleur : 4 octets Nombre coul importante palette : 4 octets (vaut 0 zero par defaut) Taille entete image : 42 octets*/ int main() { FILE *b; int i,j,temp; char ch; srand(time(NULL)); b = fopen("test.bmp","wb"); for(i=0 ; i<14 ; i++) fprintf(b,"%c",HeadFile[i]); for(i=0 ; i<40 ; i++) fprintf(b,"%c",HeadBitmap[i]); for(i=0 ; i<Hsize ; i++) { for(j=0 ; j<Lsize ; j++) { char ch = (char)rand()%255; fprintf(b,"%c",ch); ch = (char)rand()%255; fprintf(b,"%c",ch); ch = (char)rand()%255; fprintf(b,"%c",ch); } } fclose(b); printf("\n\n\n\n\n\t\tSuccess ... see at file test.bmp in current folder ....\n" "\t\t==========================================================="); getchar(); return 0; }

Conclusion :


j'attend vos commentaires

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
On fait: AND 0xFF;
pour couvrir une plage d'octet au lieu d'un modulo.
Si le compilo ne rectifie pas ton script, tu fais 40 cycles au lieu de 1.
lajouad
Messages postés
9
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
8 décembre 2011

merci stagiaire cpp. c'est vrai il fallait faire % 256.....
stagiairecpp
Messages postés
37
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
10 décembre 2011
15
Salut,

C'est soit &255, soit %256, mais pas %255 sinon tu ne couvres pas toute la plage de l'octet.

A+
BunoCS
Messages postés
14739
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 février 2020
91
Hello,
Je ne vois pas trop l'intérêt, mais bon, pourquoi pas...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.