Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Ler Bitmap em C++ BÁSICO


Symant

Pergunta

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");
            }            
            }

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...