Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - [C]Errore apertura file .jpg
Forum - C/C++ - [C]Errore apertura file .jpg - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:02
Martedì, 11/10/2011
Testo quotato

Postato originariamente da Umberto:

Scusatemi se mi intrometto , ma mi hanno insegnato che non conviene fare in c programmi ad alto lv.
potresti aprila con un comando system usando quindi il programma predefinito del sistema.



Scusa Umberto, ma questo non c'entra. Lui vuole aprire il file per leggerlo byte per byte (e farci delle operazioni) non per vedere l'immagine ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Andrea10 (Normal User)
Newbie


Messaggi: 8
Iscritto: 11/10/2011

Segnala al moderatore
Postato alle 14:28
Mercoledì, 12/10/2011
Sono riuscito ad aprire il file jpg. Ma trovo i dati in Ascii.
Come potrei fare per convertirli o leggerli sotto forma di dati esadecimali sempre da codice?

Grazie a tutti

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:30
Mercoledì, 12/10/2011
I dati non sono in ASCII o esadecimali. I dati sono binari.

Li puoi visualizzare in formato ASCII, decimale, ottale, esadecimale ... dipende da come fai ...

Ma devi sempre mostrare il codice che usi in questo momento per avere risposte ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Andrea10 (Normal User)
Newbie


Messaggi: 8
Iscritto: 11/10/2011

Segnala al moderatore
Postato alle 15:35
Mercoledì, 12/10/2011
Ecco il codice che uso.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <fcntl.h>
  4.  
  5. char *path,*ptr=NULL,barra[1];
  6. int s,i,n;
  7. int fp;
  8.  
  9. int main(){
  10. char str[500000];
  11.  
  12. path=getcwd(ptr,s);
  13. barra[0]=path[2];
  14. if(strlen(path)!=3) strcat(path,barra);
  15. strcat(path,"image.jpg");
  16. printf("%s\n\n", path);
  17. fp=open(path,O_RDONLY);
  18. s=0;
  19. n=read(fp,&str[s],sizeof(char));
  20. while(n!=0){
  21.     n=read(fp,&str[s],sizeof(char));
  22.     printf("%c",str[s]);
  23.     s++;}
  24. close(fp);
  25. fp=open("FImage.txt",O_RDONLY);
  26. if(fp<0)
  27.     creat("FImage.txt",0666);
  28. close(fp);
  29. fp=open("FImage.txt",O_WRONLY);
  30. for(i=0;i<s;i++)
  31.     write(fp,&str[i],sizeof(char));
  32. close(fp);
  33. getch();
  34. }



Nel file .txt che creo ottengo lettere e simboli.
Non si tratta di caratteri ascii?
Grazie

PM Quote
Avatar
Andrea10 (Normal User)
Newbie


Messaggi: 8
Iscritto: 11/10/2011

Segnala al moderatore
Postato alle 15:44
Mercoledì, 12/10/2011
Ecco il codice che uso.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <fcntl.h>
  4. char *path,*ptr=NULL,barra[1];
  5. int s,i,n;
  6. FILE *fp;
  7. int main(){
  8. char str[50000];
  9. path=getcwd(ptr,s);
  10. barra[0]=path[2];
  11. if(strlen(path)!=3) strcat(path,barra);
  12. strcat(path,"image.jpg");
  13. printf("%s\n\n", path);
  14. fp=fopen(path,"rb");
  15. s=0;
  16. while(!feof(fp)){
  17.     fread(&str[s],sizeof(char),1,fp);
  18.     printf("%c",str[s]);
  19.     s++;}
  20. fclose(fp);
  21.  
  22. fp=fopen("FImage.txt","wb");
  23. for(i=0;i<s;i++)
  24.     fwrite(&str[i],sizeof(char),1,fp);
  25. fclose(fp);
  26. getch();
  27. }



Nel file .txt che creo ottengo lettere e simboli.
Non si tratta di caratteri ascii?

Ho provato ad aprire l'immagine con un altro programma preso da internet e mi visualizza i dati in esadecimale e i simboli.

Grazie

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:58
Mercoledì, 12/10/2011
Se indichi di mostrare i dati in formato carattere (ASCII) con

printf("%c",str[s]);

è così che li vedrai. Per vederli in esadecimale, devi indicare

printf("%X",str[s]);


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Andrea10 (Normal User)
Newbie


Messaggi: 8
Iscritto: 11/10/2011

Segnala al moderatore
Postato alle 19:19
Mercoledì, 12/10/2011
E per scriverli su un file txt in esadecimale come faccio?

Grazie, Andrea

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:42
Mercoledì, 12/10/2011
Se li vuoi scrivere in esadecimale in un file di testo, usi la

fprintf

al posto della

printf

Ovviamente devi prima aprire il file in output.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo