|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2002
Città: Pisa
Messaggi: 152
|
[C++] Altezza e lunghezza di un'immagine JPG
Ho disperato bisogno di determinare a tempo di esecuzione lunghezza ed altezza (in piexel) di un'immagine JPEG... (dovrò compilare con il Visual C++ 6.0)
Grazie a ki saprà darmi una mano.... |
|
|
|
|
|
#2 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Re: [C++] Altezza e lunghezza di un'immagine JPG
Quote:
http://www.tonec.com/download4.html |
|
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Dec 2002
Città: Pisa
Messaggi: 152
|
Re: Re: [C++] Altezza e lunghezza di un'immagine JPG
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se ne hai voglia: http://www.wotsit.org/download.asp?f=itu-1150PDF
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Dec 2002
Città: Pisa
Messaggi: 152
|
Quote:
Ultima modifica di Loprix : 06-09-2003 alle 13:11. |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Dec 2002
Città: Pisa
Messaggi: 152
|
Finalmente ce l'ho fatta... ;)
OK, ho letto le specifiche del formato ed ho scritto (ahimé) tutto solo la funzione... La riporto sperando possa essere utile a qualcun altro...
La funzione ritorna 0 in caso di successo, un codice di errore altrimenti. Codice:
#include <stdio.h>
#define SUCCESS 0x00
#define IO_ERR 0x01
#define BAD_FORMAT 0x02
inline int test(unsigned short c){
return (c == 0xC0 ||
c == 0xC1 ||
c == 0xC2 ||
c == 0xC3 ||
c == 0xC5 ||
c == 0xC6 ||
c == 0xC7 ||
c == 0xC9 ||
c == 0xCA ||
c == 0xCB ||
c == 0xCD ||
c == 0xCE ||
c == 0xCF );
}
int GetJPEGSize(char* filename, short& X, short& Y){
const int SIZE = 300; // dimensione del buffer
int ret, n = 0;
unsigned char buff[SIZE]; // buffer di lettura
X = Y = 0;
FILE * pFile = fopen(filename,"rb");
if (pFile == NULL)
return IO_ERR;
ret = fread (buff,1,SIZE,pFile);
ret -= 8; // SOF deve essere nei primi (ret-8) bytes
fclose (pFile);
// cerco il flag SOF: Y si trova dopo 5 bytes e X dopo 7
while (n<ret && !(buff[n]== 0xFF && test(buff[n+1]))){
n++;
}
if (n>=ret) return BAD_FORMAT; // FLAG SOF non trovato
Y = (buff[n+5]<<8)|(buff[n+6]);
X = (buff[n+7]<<8)|(buff[n+8]);
return SUCCESS;
}
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Grande
|
|
|
|
|
|
#8 |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Bravissimo. Così si fa
|
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Dec 2002
Città: Pisa
Messaggi: 152
|
Quote:
maestro
|
|
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Dec 2002
Città: Pisa
Messaggi: 152
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No...bravo davvero... Si studia e poi si scrive il codice...magari per te è normale...ma non per qualche persona che frequenta questo forum
|
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: Dec 2002
Città: Pisa
Messaggi: 152
|
Quote:
Buona serata a tutti... ho bisogno di uscire, le DirectShow® delle DirectX 9.0 mi stanno facendo impazzireeeee!!!!! Ciauz... |
|
|
|
|
|
|
#13 | |
|
Bannato
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR Casco: XR1000 Diabolic 3
Messaggi: 27578
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:11.











maestro







