Cómo guardar una imagen usando libcurl
Quería usar libcurl para un proyecto que implica obtener una imagen de una página web. La URL se ve así:
http: //xxx.xxx.xxx.xxx/cgi-bin/anonymous/image.jp
Utilizando la línea de comandos cURL puedo recuperar la imagen usando
$curl -o sampleimage.jpg http://xxx.xxx.xxx.xxx/cgi-bin/anonymous/image.jpg
Quiero saber el equivalente de este código en libcurl porque me estoy volviendo loco en este momento. Obtuve esta fuente de muestra en la red, y se compila y todo eso, pero no puedo ver el archivo de imagen en ninguna parte.
Este es el código:
#include <iostream>
#include <curl/curl.h>
#include <stdio.h>
using namespace std;
int main(){
CURL *image;
CURLcode imgresult;
FILE *fp;
image = curl_easy_init();
if( image ){
// Open file
fp = fopen("google.jpg", "wb");
if( fp == NULL ) cout << "File cannot be opened";
curl_easy_setopt(image, CURLOPT_URL, "http://192.168.16.25/cgi-bin/viewer/video.jpg");
curl_easy_setopt(image, CURLOPT_WRITEFUNCTION, NULL);
curl_easy_setopt(image, CURLOPT_WRITEDATA, fp);
// Grab image
imgresult = curl_easy_perform(image);
if( imgresult ){
cout << "Cannot grab the image!\n";
}
}
// Clean up the resources
curl_easy_cleanup(image);
// Close the file
fclose(fp);
return 0;
}
BTW Estoy usando una Mac y estoy compilando este código en XCode que tiene una biblioteca libcurl.
*EDITAR*Problema fijo. Acabo de usar una ruta completa para el fopen (). Gracias Mat! Responda la pregunta para que yo pueda elegir la suya como la respuesta correcta. ¡Gracias