我想将libcurl用于涉及从网页获取图像的项目。 URL如下所示:
https://sofzh.miximages.com/c%2B%2B/image.jpg
使用命令行cURL我可以使用检索图像
$curl -o sampleimage.jpg https://sofzh.miximages.com/c%2B%2B/image.jpg
我想知道libcurl中这段代码的等价物,因为我现在已经疯了。 我在网上得到了这个示例源,它编译和填充,但我无法在任何地方看到图像文件。
这是代码:
#include #include #include 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, "https://sofzh.miximages.com/c%2B%2B/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; }
顺便说一下,我正在使用Mac,而我正在XCode上编译这个代码,它有一个libcurl库。
* 编辑: *问题已修复。 我刚刚使用了fopen()的完整路径。 谢谢你! 请回答这个问题,以便我可以选择你的正确答案。 谢谢!
在公开呼叫中使用完整路径,以便您知道在哪里查看。
此外,您应该查看perror
函数,这样您就可以打印出打开失败的原因 – 省去了一些麻烦。
最后一件事:将fp
初始化为null,或者只有fclose(fp)
才真正打开。 就目前而言,如果curl_easy_init
失败,您将尝试fclose
随机指针。
需要了解更多c/c++开发分享如何使用libcurl保存图像,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享如何使用libcurl保存图像相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/979336.html