Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/44: Рейтинг темы: голосов - 44, средняя оценка - 4.68
 Аватар для red_mail
4 / 4 / 1
Регистрация: 25.11.2008
Сообщений: 107

Картинку с сайта

19.01.2009, 07:46. Показов 8770. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Подскажите пожалуйста, как выдрать картинку (jpg) из сайта и сохранить на диск?
Подходит ли для этих целей компонент TidHTTP?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2009, 07:46
Ответы с готовыми решениями:

Уменьшить картинку в шапке сайта и картинку в начале каждой статьи
Здравствуйте. Есть сайт на Вордпрессе appleiwatch(*точка*)name. 1. Требуется скорректировать картинку в шапке сайта (хедере) в...

HTML - Надо: вставить картинку в картинку, в эту картинку, ссылку в картинку
Вот схема моего сайта. http://s020.***********/i716/1404/8c/254516feacb3.jpg У меня пока что на этой странице есть: 1. Элемент Фон -...

Вытащить картинку с сайта
Добрый день! я дико извеняюсь , скорее всего, я ошибся разделом форума, прошу за это прощения. Перенесите куда нужно. Но нужна срочная...

6
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
22.01.2009, 07:02
подойдет любой компонент, который с tcp работает... в том числе и TIdHTTP. только надо сначала найти ссылку на эту самую картинку (тег <img>)... Например через Pos('<img', Text) или с помощью регулярных выражений... ну если надо, могу поподробнее объяснить). когда ссылка найдена, отправляем обычный запрос типа:
GET /images/nav_logo4.png HTTP/1.0
Host: www.google.ru
User-Agent: unknown

ну и т.д., все стандартно вроде...=)
0
 Аватар для red_mail
4 / 4 / 1
Регистрация: 25.11.2008
Сообщений: 107
23.01.2009, 11:54  [ТС]
Цитата Сообщение от NEbO Посмотреть сообщение
подойдет любой компонент, который с tcp работает... в том числе и TIdHTTP. только надо сначала найти ссылку на эту самую картинку (тег <img>)... Например через Pos('<img', Text) или с помощью регулярных выражений... ну если надо, могу поподробнее объяснить). когда ссылка найдена, отправляем обычный запрос типа:
GET /images/nav_logo4.png HTTP/1.0
Host: www.google.ru
User-Agent: unknown

ну и т.д., все стандартно вроде...=)

Можно поподробнее для компонента TidHTTP?
Ссылка на картинку, допустим: https://www.google.ru/intl/en_... _plain.png
как должен выглядеть код?
Так?:

Code
1
HTTP.Get('http://www.google.ru/intl/en_com/images/logo_plain.png);
Как его сохранить?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
23.01.2009, 16:16
Держи пример:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
var
stream:TMemoryStream;
jpeg:TJPEGImage;
begin
stream:=TMemoryStream.Create();
IdHTTP1.Request.ContentRangeEnd:=9999999;
IdHTTP1.Get('http://www.animesector.ru/upload/posts/2008-12/1229470128_11.jpg',stream);
stream.Position:=0;
jpeg:=TJPEGImage.Create();
jpeg.LoadFromStream(stream);
Image1.Picture.Bitmap.Assign(jpeg);
jpeg.Free();
stream.Free();
end;
Тут, в примере, файл записывается в поток памяти, и вы водится на TImage, а чтобы сохранить на диск, вместо TMemoryStream ничего не стоит использовать TFileStream.

Хотя я таким свособом не пользуюсь никогда.
Я если пишу на Билдере(а им я пользуюсь всегда), то больше люблю использовать Api InternetOpenUrl и InternetReadFile, а что нужно подключать в delphi чтобы их использовать я не знаю, да не больно то и хочу искать, так как delphi не использую вообще.
1
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
23.01.2009, 17:13
хм... в таком случае все гораздо проще... метод Get возвращает содержимое в виде строки. записать строку в файл можно например следующим образом:
Pascal
1
2
3
4
5
6
7
var s: string; f: TFileStream;
begin
  s := HTTP.Get('http://www.google.ru/intl/en_com/images/logo_plain.png');
  f := TFileStream.Create('c:\logo_plain.png', fmCreate);
  f.Write(Pointer(s)^, Length(s));
  f.Free;
end;
2
 Аватар для red_mail
4 / 4 / 1
Регистрация: 25.11.2008
Сообщений: 107
23.01.2009, 17:58  [ТС]
Цитата Сообщение от NEbO Посмотреть сообщение
хм... в таком случае все гораздо проще... метод Get возвращает содержимое в виде строки. записать строку в файл можно например следующим образом:
Pascal
1
2
3
4
5
6
7
var s: string; f: TFileStream;
begin
  s := HTTP.Get('http://www.google.ru/intl/en_com/images/logo_plain.png');
  f := TFileStream.Create('c:\logo_plain.png', fmCreate);
  f.Write(Pointer(s)^, Length(s));
  f.Free;
end;
Огромное человеческое спасибо . Все работает.

Еще один вопрос: почему в этой строке: Write(Pointer(s)^, Length(s)),
в constBuffer используется этот знак '^' ?
Что он означает?
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
25.01.2009, 22:19
там надо передать первый символ из строки... вроде можно использовать и s[1], но я точно не помню... просто если посмотреть метод SaveToFile класса TFileStream, то там как раз так передается... а я по привычке и написал=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2009, 22:19
Помогаю со студенческими работами здесь

Вытащить картинку с сайта
Имеется ресурс 194.177.21.143:3001/flats там есть картинка с расположение дома. как ее выдрать? я пытаюсь ее тупо скачать - приходит...

Вытащить картинку с сайта
Как можно вытащить картинку с сайта? http://www.imdb.com/media/rm1288090368/nm0757855 Если можете/знаете, как это сделать, то не...

Скопировать картинку с сайта
здравствуйте, подскажите как скопировать картинку с сайта. При нажатии правой кнопки мыши ничего не появляется и картинка не...

скачать картинку с сайта
Здравствуйте. Подскажите код программы Delphi, с помощью которой можно было бы скачать определенную картинку с сайта. Адрес задается...

Скачать картинку с сайта
Всем привет! Проблема такая- При получении ссылки из html на картинку $oIE = _IECreate (&quot;https://&quot;) $oImg =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru