Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [C++]bmp e c++

    ciao a tutti sono nuovo di questo forum
    scrivo per chiedere un aiuto a voi che sicuramente ne sapete piu di me sul c++ visto che io sono un pochino alle prime armi!!!!
    il mio problema è questo ho un immagine bitmap in bianco e nero a un bit per pixel.
    Io voglio prendere questa immagine salvare i valori dei pixel su un array per dopo fare delle successive operazini è una settimana che ci provo e non so come venirne fuori voi sapreste darmi qualche indicazione??

    grazie mille per l'aiuto
    David

  2. #2
    Che genere di bitmap? È in memoria o in un file? Su che piattaforma stai lavorando?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    allora è in un file e sto lavorando su windows con dev c++.
    cosa intendi con che genere di bitmap?

  4. #4
    In Windows ci sono due tipi di bitmap, le DDB (device-dependent bitmap) e le DIB (device-independent bitmap); se è in un file comunque si tratta di una DIB.
    Allora, caricare una DIB in memoria è piuttosto semplice, visto che una DIB salvata corrisponde esattamente alla sua rappresentazione in memoria. Una volta caricata in memoria devi lavorare sulla sua struttura: prima dai una letta a questo documento, quindi eventualmente chiedi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    io ho provato a scrivere questo codice

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

    int main()
    {
    FILE *in, *out;
    int i=0, j=0;
    int b=0;

    out = fopen("./origine.bmp", "rb");

    cout<<"start"<<endl;

    //trovo la dimensione dell'img
    while(!feof(out))
    {
    fread(&i, sizeof(char), 1, out);
    j++;
    }

    j=j--;

    //creo l'array che conterrà l'immagine
    bool img_array[j];
    //inizializzo l'array a 0
    for(b=0;b<j;b++){ img_array=0;}
    int a=0;

    fclose(out);

    out = fopen("./origine.bmp", "rb");
    //scorro nuovamente l'immg e riempo l'array con i valori
    while(!feof(out))
    {
    fread(&i, sizeof(bool), 1, out);
    img_array[a]=i;

    a++;
    }

    // stampo a video i valori dell'array
    for(b=0;b<j;b++){cout<<img_array<<" ";

    }

    fclose(out);

    cout<<"numero celle"<<j<<endl;
    system("PAUSE");

    return 0;
    }



    però non mi convince piu di tanto!!ovvero ho preso un'immagine tutta nera e ho colorato di bianco alcuni pixel adiacenti pero nell'array non mi ritrovo coi valori aspettati!!

  6. #6
    Hai letto l'articolo che ti ho indicato?
    (e, tra parentesi, per ottenere le dimensioni di un file basta chiamare l'API GetFileSize)
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    A quale formato BITMAP ti stai riferendo?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  8. #8
    per MItaly si si ho letto l'articolo che mi hai dato!!ah grazie per l'info sulla funzione GetFileSize

    per pallinopinco sto usando un bitmap DIB.

  9. #9
    per pallinopinco sto usando un bitmap DIB.
    E allora perché non rispetti le specifiche del formato e cerchi di leggere il file come una sequenza non strutturata di valori?

    Ci sono delle ottime librerie per la gestione delle immagini, secondo me dovresti usare quelle evitando di "improvvisare" una soluzione.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  10. #10
    Originariamente inviato da pallinopinco
    E allora perché non rispetti le specifiche del formato e cerchi di leggere il file come una sequenza non strutturata di valori?

    Ci sono delle ottime librerie per la gestione delle immagini, secondo me dovresti usare quelle evitando di "improvvisare" una soluzione.
    ok sapresti per caso indicarmene una??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.