Просмотр полной версии : Аватар Вконтакте
ilyhamas
10.05.2010, 23:15
Необходимо получить фотографию из профиля в Image. Как это осуществить?
Язык Delphi
var
Img : TJpegImage;
Ms : TMemoryStream;
begin
Img := TJpegImage.Create;
Ms := TMemoryStream.Create;
try
Http.Get('http://vkontakte.ru/ссыль на аву', Ms);
except end;
Ms.Position := 0;
img.LoadFromStream(ms);
form1.Image1.Picture.Graphic := img;
ilyhamas
11.05.2010, 07:43
1n0y
Как получить определённую картинку это понятно.
Мне нужно при авторизации. Ссылку картинки я не знаю
Как получить определённую картинку это понятно.
Мне нужно при авторизации. Ссылку картинки я не знаю
то есть тебе известен линк на саму страницу? Тогда почти так же, нужно только отпарсить из полученного хтмл кода линк на картинку.
ilyhamas
11.05.2010, 13:39
то есть тебе известен линк на саму страницу? Тогда почти так же, нужно только отпарсить из полученного хтмл кода линк на картинку.
именно это мне и надо
RedFern.89
11.05.2010, 14:00
все просто
var
Page : TStringList;
I : Integer;
url : string;
begin
Page := TStringList.Create;
Page.Text := HTTP.Get('http://vkontakte.ru/idxxxxxx');
For I := 0 to Page.Count -1 do
begin
if Pos('<div id="profilePhoto"', page[i]) <> 0 then
begin
url := page[i +1];
url := Copy(url, Pos('http://', url), Length(url));
Delete(url, Pos('/>', url), Length(url));
end;
end;
page.Free;
end;
// url - ссылка на аву)))
ilyhamas
11.05.2010, 19:28
Только возникает ошибка JPEG error #42
RedFern.89
11.05.2010, 19:41
как ты картинку отображаешь? приведи код
ilyhamas
11.05.2010, 19:48
второй пост
RedFern.89
11.05.2010, 20:03
дайка сорс, так не понять ниче.. залей на slil (http://slil.ru/)
ilyhamas
11.05.2010, 20:24
дайка сорс, так не понять ниче.. залей на slil (http://slil.ru/)
отправил в ЛС часть кода
RedFern.89
11.05.2010, 20:43
скажи, а почему ты запрашиваешь страницу не авторизировавшись? оО щас намучу авторизацию
RedFern.89
11.05.2010, 21:17
ссылку дал в лс. У тебя там ошибка:
idhttp1.Get(url); // Ты запрашиваешь контент, но никуда его не записываешь
правильнее будет так:
idhttp1.Get(url, ms);
коли юзаешь инди, файл idCookieManager.pas залей в папку lib
ilyhamas
11.05.2010, 22:36
теперь ошибка JPEG error #53
Ferrari california
11.05.2010, 22:50
я delphi не изучаю и не буду.(изучаю С#)
Но вот выложу алгоритм.
1.Авторизуемся VK как те удобно уйма способов,лучше winapi.
2.После авторизации,циклом на странице ишиш profilePhoto.
3.Парсиш и сохроняеш в Image.
p.s.Сильно не критиковать вроде все верно описал.
ilyhamas
11.05.2010, 23:18
всё разобрался в чём проблема была.
всем спасибо!
var
Page : TStringList;
I : Integer;
url : string;
begin
Page := TStringList.Create;
Page.Text := HTTP.Get('http://vkontakte.ru/idxxxxxx');
url := Copy( Page.Text, Pos('img src=http://cs', Page.Text)+8, 70);
Delete(url, Pos('/>', url), Length(url));
page.Free;
end;
RedFern.89, так лучше, т.к. эта строчка в коде уникальна. ну или юзайте break; после нахождения строки, сами понимаете зачем :)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot