Jump to content
Fórum Script Brasil
  • 0

Ajuda Ler Bitmap em C++ BÁSICO


Symant

Question

O que parecia um programa bem simples vem se tornando muito dificil pra mim.

Alguém me ajuda? estou com algumas duvidas(mais precisamente onde tem os // para os comentarios.)

Enfim,o programa basicamente pega uma imagem monocromatica .bmp,le os pontos de uma reta e cria um arquivo com suas coordenadas,se alguém puder me ajudar eu agradeço.

eu não posso usar outros comandos além desses porque é um trabalho de um curso.

se alguém conseguiu entender o que eu fiz e puder me ajudar eu agradeço e MUITO.

A grande dificuldade que eu encontro é como tirar o cabeçalho da imagem .bmp e como eu vou conseguir de fato,ler o arquivo .bmp

Eu gostaria de saber se ficaria mais facil com o allegro.h

no entanto não sei usa-lo se alguém souber resolver mesmo com o allegro.h me ajude por favor?

Obrigado desde já

#include<stdio.h>
#include<stdlib.h>
#include<math.h>


int main ()
{
    FILE *entrada,*saida;
    entrada=fopen("IMAGEMMONO.bmp","r"); // Descobrir como C le o arquivo em .bmp
    saida=fopen("coordenadas.txt","w");
    int i,contx,conty,coordx,coordy;
    float aux1,aux2,valor;
          contx=0;
          conty=0;
          coordy=0;
          coordx=0;
          if (entrada==NULL)
          {
          printf("ERRO,arquivo não encontrado");
          } 
                  
          for(i=0;i<14;i++){ // Descobrir o numero de bits do cabeçalho para ignorá-lo no programa
          aux1=fgetc(entrada);
          aux2=fgetc(entrada);
          }
          aux1=69;
          aux2=69;
            while(!feof(entrada))
            {
            aux1=fgetc(entrada);
            aux2=fgetc(entrada);
            valor=aux1*16+aux2; // Fazer a conversao para Hexa
            printf("%c",&valor);
            if(valor==0){ // Descobrir o Valor do pixel preto
            coordx=contx;
            coordy=conty;
            fprintf(saida, "\n X: %d Y: %d \n", coordx,coordy);           
            }
            contx++;
            if(contx==941) 
            {
            contx=0;
            conty++;
            }
            }
            if(feof(entrada))
            {
            printf("Fim!\n");
            fclose(entrada);
            system("PAUSE");
            }            
            }

Edited by kuroi
Adicionar tag CODE
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...