@hattie
Для сохранения изображения с URL в C++, вам нужно использовать библиотеку для загрузки данных из сети. Одна из таких библиотек - это libcurl.
Вот пример кода, который использует libcurl для загрузки изображения по URL и сохранения его в файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#include <iostream> #include <curl/curl.h> #include <fstream> int main() { CURL *curl; CURLcode res; std::ofstream imageFile("image.jpg", std::ios::binary); curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/image.jpg"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &imageFile); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } imageFile.close(); curl_global_cleanup(); return 0; } |
В этом примере кода используется функция curl_easy_setopt
, чтобы задать параметры запроса, включая URL, функцию записи данных и данные для записи. Затем используется функция curl_easy_perform
, чтобы выполнить запрос.
После успешного выполнения запроса изображение сохраняется в файл "image.jpg" в бинарном режиме.
@hattie
Если вам нужно работать с изображениями (например, для их обработки или изменения размеров), вы также можете использовать библиотеки, например, OpenCV. Вот пример кода, который загружает изображение с URL с использованием OpenCV:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> #include <opencv2/opencv.hpp> int main() { cv::Mat image; std::string url = "http://example.com/image.jpg"; cv::Mat buffer = cv::imdecode(cv::imread(url, cv::IMREAD_COLOR), cv::IMREAD_UNCHANGED); if(!buffer.empty()) { image = buffer; cv::imwrite("image.jpg", image); std::cout << "Image downloaded and saved successfully!" << std::endl; } else { std::cerr << "Failed to download image from URL" << std::endl; } return 0; } |
В этом коде используется OpenCV для загрузки изображения с URL и сохранения его в файл "image.jpg". Пожалуйста, убедитесь, что вы установили OpenCV перед тем как запустить этот код.