PDA

Просмотр полной версии : [Помогите!] Подсожите про изоброжение


gum_classis
27.08.2011, 09:03
Подскажите как скачать программно при включении проги скачать какую либо картинку с сайта в компонент Image (скажу по секрету нада скачивать капчу)

VeTaL_UA
27.08.2011, 12:06
var
s:TMemoryStream;
begin
try
s.Create;
Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]',s);
finally
s.SaveToFile('kap4a.jpg');
s.Free;
Image1.Picture.LoadFromFile('kap4a.jpg');
end;
end;

var
s:TMemoryStream;
begin
try
s.Create;
Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]',s);
Image1.Picture.Bitmap.LoadFromStream(s);
finally
s.Free;
end;
end;

Как то так.

tonyr
27.08.2011, 13:00
кинул по твоему способу 2 и че то в первой строке написаного кода ошибка

Добавлено через 3 минуты
все исправил то проблема с ссылкой была. а что вот тут за ошибка Image1.Picture.LoadFromStream(s);

VeTaL_UA
27.08.2011, 13:06
кинул image по твоему способу и че то в первой строке написаного кода ошибка
только что скомпилил без ошибок... странно... а какая ошибка???

tonyr
27.08.2011, 13:19
[Error] Unit1.pas(36): Undeclared identifier: 'LoadFromStream'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Добавлено через 3 минуты
а все норм. а как капчу с фейсбука получить?

VeTaL_UA
27.08.2011, 13:29
а все норм. а как капчу с фейсбука получить?
так же как и с любого другого сайта - найти адрес, по которому она находится и вывести в Image...

tonyr
27.08.2011, 14:02
выводил там капча через гугл а при компиляции ошибка

Добавлено через 2 минуты
вот ссылка на изображение [Ссылки могут видеть только зарегистрированные и активированные пользователи] mBdhOFgOtrIXk4OCcGxTHKeWZLct57EsRbnUx1Coxyn5z0XUyE qIF7ArCXbqwcydd3yk8O99gAJXHeQqytGNwgRH8v_pOUgzKMtW IR4qUnVXVIOi0ZB1Vd8T-RwwvamV_blhSP4ObDgzud2ACcSG6JzK_3Guy_GFt18W

VeTaL_UA
27.08.2011, 14:11
выводил там капча через гугл а при компиляции ошибка
разбирайся сам... где-то слышал, что гугловскую капчу можно обойти...

tonyr
27.08.2011, 14:12
мда вижу трудно обьяснить. ну да ладно.

gum_classis
27.08.2011, 16:51
Способ №2(без скачки);
Код:

var
s:TMemoryStream;
begin
try
s.Create;
Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]',s);
Image1.Picture.Bitmap.LoadFromStream(s);
finally
s.Free;
end;
end;
При компиляции этого фаила лезит ошибка вот такая Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004034AB in module 'Project1.exe'.Read of address 7A83663A'.Process stopped. Use or Run to continue.

Dinmaite
27.08.2011, 21:30
s.Create;
Научись верно создавать элементы в RunTime.

gum_classis
27.08.2011, 22:24
Код не мной взял постом выше сам не знаю в какую сторону копать,димнайт помоги пожалуйста очень надо

Dinmaite
27.08.2011, 22:38
Надо знать какую ты карнитку парсишь.

gum_classis
27.08.2011, 22:43
ой точно код был косой,все исправил компилируется но при нажатии ничего не происходит что делать вот мой код
procedure TForm1.Button2Click(Sender: TObject);
var
s:TMemoryStream;
begin
try
s:=TMemoryStream.Create;
Id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]',s);
Image1.Picture.Bitmap.LoadFromStream(s);
finally
s.Free;
end;
end;

VeTaL_UA
27.08.2011, 23:19
s.Create;
Это моя ошибка. Правильно будет:
s:=TMemoryStream.Create;
ой точно код был косой,все исправил компилируется но при нажатии ничего не происходит что делать вот мой код
Ну так ты наверное грузишь картинку не в том формате...

Mebius
28.08.2011, 13:08
через http в мемСтрим, потом загрузить в канвас из стрима картинку

gum_classis
28.08.2011, 18:23
Мебиус если есть время можешь поподробней ,желательно по пунктам обьясни

Mebius
28.08.2011, 20:36
Мебиус если есть время можешь поподробней ,желательно по пунктам обьясни

по пунктам:
IdHTTP или [Ссылки могут видеть только зарегистрированные и активированные пользователи](синапс)
если idHTTP то
создаешь ТСтрим
Гет запрос картинки с записью в этот стрим
Имейдж.Канвас.ЛоадФромСтрим(созданный стрим)

с синапс просто гет запрос на картинку и загрузка из [Ссылки могут видеть только зарегистрированные и активированные пользователи] тк он уже сам по себе стрим типа

*xalyava*
28.08.2011, 21:59
не получается!!
делаю так:
image1.canvas.и дальше просто напросто нет строки в выпадающем меню (если можно так сказать) пункта (строки) loadfromstream а если вписать вручную то вылезает ошибка типо неизвестная переменная (как то так)!!

Mebius
28.08.2011, 22:21
не получается!!
делаю так:
image1.canvas.и дальше просто напросто нет строки в выпадающем меню (если можно так сказать) пункта (строки) loadfromstream а если вписать вручную то вылезает ошибка типо неизвестная переменная (как то так)!!

ну у меня в голове не винчестер от компа что б помнить все, попробуй имейдж канвас битмап лоадФромСтрим

а вообще учебник англ яз в зубы и вперед!

VeTaL_UA
29.08.2011, 10:51
ну у меня в голове не винчестер от компа что б помнить все, попробуй имейдж канвас битмап лоадФромСтрим

а вообще учебник англ яз в зубы и вперед!
В Canvas со стрима картинку не загрузишь... Зато, её можно туда нарисовать)

Dinmaite
29.08.2011, 11:07
Я вообще не могу понять что вы паритесь то?
Для .jpg:

PicStream:=TMemoryStream.Create;э
PicStream.Position:=0;.
[Ссылки могут видеть только зарегистрированные и активированные пользователи](s, PicStream);
Image1.Picture.Graphic:=TJpegImage.Create;
Image1.Picture.Graphic.LoadFromStream(PicStream);
PicStream.Free;

Для .png то же самое на объект Graphic необходимо создать PNG формата.
Для .bmp - аналогично, либо грузить в Image.Picture.Bitmap.