Bmp.cpp

Contenu du snippet

allez voir sur .net

Source / Exemple :


#include <dos.h>
#include <pc.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
char *buffer_sprite=new char[256];
char *buffer_sprite_vide=new char[256];

void Init_buf()
{
  for(int o=0;o<256;o++)
   {
     buffer_sprite_vide[o]=0;
   }
}

void SetPal(char col,char r,char g,char b)
{
 outp(0x03c8,col);
 outp(0x03c9,r);
 outp(0x03c9,g);
 outp(0x03c9,b);
}

void LirePal(char col,int r,int g,int b)
{
 outp(0x03c7,col);
 r=inp(0x03c9);
 g=inp(0x03c9);
 b=inp(0x03c9);
}

int loadbmp(char *nomfich,int largeur,int hauteur,char *image)
{
  unsigned char palette[256][4];
  FILE *fichbmp;

  if(!(fichbmp = fopen(nomfich, "rb"))) return 0;
  fseek(fichbmp,54, SEEK_SET);
  fread(&palette, 1024, 1, fichbmp);

  for(int coul=0;coul<=255;coul++)
    SetPal(coul,palette[coul][2]>>2,palette[coul][1]>>2,palette[coul][0]>>2);

  unsigned int offset = largeur*hauteur;//64000;
  for (int ligne=0;ligne<hauteur;ligne++)
  {
    fread (image+offset,largeur,1,fichbmp);
    offset -= largeur;//320
  }
  fclose (fichbmp);
  return 1;
}

int loadsprite(char *nomfich,int posx,int posy,char *endroit)
{
  Init_buf();
  memcpy(buffer_sprite,buffer_sprite_vide,256);

  unsigned char palette[256][4];
  FILE *fichbmp;
   if(!(fichbmp = fopen(nomfich, "rb"))) return 0;

  fseek(fichbmp,54, SEEK_SET);
  fread(&palette, 1024, 1, fichbmp);

  for(int coul=0;coul<=255;coul++)
    SetPal(coul,palette[coul][2]>>2,palette[coul][1]>>2,palette[coul][0]>>2);

  unsigned int offset = 256;
  for (int ligne=0;ligne<16;ligne++)
  {
    fread(buffer_sprite+offset,16,1,fichbmp);
    offset-=16;
  }
   for(int i=0;i<=16;i++)
    {
     for(int j=0;j<=16;j++)
      {
       if(buffer_sprite[(j*16)+i]!=0)
       endroit[((posy+j)*320)+posx+i]=buffer_sprite[(j*16)+i];
      }
    }
  fclose (fichbmp);
  return 1;
}

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.