ik ben bezig een kleine app te maken die om een bepaalde tijd een plaatje van een website download en opslaat. (dat plaatje komt van een webcam en verandert steeds)
het verbinden met de server is geen enkel probleem. en ook het binnen halen van het plaatje gaat meteen goed. wat fout gaat is het opslaan. volgens mij mis ik namelijk een correcte JPEG header in de data die ik krijg.
wanneer ik dat plaatje via http door krijg, moet ik dan zelf de http header vervangen voor een jpeg header?
ik probeer nu te downloaden: http://www.raceeend.net/thevoices.jpg
met o.a. de volgende code:
wanneer ik nu de output bekijk met een hex viewer, zie ik wel deels de jpg header staan maar lang niet alles.
er staat eerst wat 'troep', de http header gevolgd door een aantal hex getallen die ik niet herken, dan komt netjes de SOI, gevolgd door de JFIF. maar vervolgens zie ik niet de jfif identifier er in staan.
zou iemand mij kunnen vertellen hoe ik plaatjes van het web kan opslaan vanuit C++?
het verbinden met de server is geen enkel probleem. en ook het binnen halen van het plaatje gaat meteen goed. wat fout gaat is het opslaan. volgens mij mis ik namelijk een correcte JPEG header in de data die ik krijg.
wanneer ik dat plaatje via http door krijg, moet ik dan zelf de http header vervangen voor een jpeg header?
ik probeer nu te downloaden: http://www.raceeend.net/thevoices.jpg
met o.a. de volgende code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| //hierboven een winsock geopend naar www.raceeend.net:80 sprintf(buff,"GET %s/%s HTTP/1.1\r\nHost: %s\r\n\r\n", filepath, filename, servername); send(conn,buff,strlen(buff),0); ofstream myfile; myfile.open ("example.bin",ios::binary|ios::trunc); //Writing to file while(recv(conn,buff,512,0)) { myfile<<buff; cout<<buff<<endl; } myfile.close(); cout<<"done"; |
wanneer ik nu de output bekijk met een hex viewer, zie ik wel deels de jpg header staan maar lang niet alles.
er staat eerst wat 'troep', de http header gevolgd door een aantal hex getallen die ik niet herken, dan komt netjes de SOI, gevolgd door de JFIF. maar vervolgens zie ik niet de jfif identifier er in staan.
zou iemand mij kunnen vertellen hoe ik plaatjes van het web kan opslaan vanuit C++?