السلام عليكم
عندي خطا عند اظهار صورة من رابط في image1 اذا كان الرابط بدايته https يحدث الخطا الخطا
IOHandler value is not valid
الكود
كود :
var strstream:string;
stream:TMemoryStream;
jp:TJPEGImage;
http:TIdHTTP;
begin
jp:=TJPEGImage.Create;
http:=IdHTTP1.Create(nil);
strstream:=IdHTTP1.Get('https://d.top4top.net/p_455jyqt61.jpg');
stream:=TMemoryStream.Create;
stream.Write(strstream[1],Length(strstream) );
stream.Position:=0;
jp.LoadFromStream(stream);
Image1.Picture.Assign(jp);
stream.Free;
jp.Free;
end;
والسلام عليكم ورحمة الله
تمام تم حل المشكلة الاولى لكن بقي الامتداد اذا لم يكن jpeg يظهر خطا كيف يمكنني اظهار جميع الامتدادات او اغلبها على الاقل
var strstream

tring;
stream:TMemoryStream;
jp:TJPEGImage;
http:TIdHTTP;
LHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
jp:=TJPEGImage.Create;
LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdHTTP1.IOHandler:=LHandler;
http:=IdHTTP1.Create(nil);
strstream:=IdHTTP1.Get('https://d.top4top.net/p_455jyqt61.jpg');
stream:=TMemoryStream.Create;
stream.Write(strstream[1],Length(strstream) );
stream.Position:=0;
jp.LoadFromStream(stream);
Image1.Picture.Assign(jp);
stream.Free;
jp.Free;
LHandler.Free;
end;
يمكنك التحقق بطريقتين
الأولى التحقق من الملف
الثانية الاستعانة برد الخادم
وهي كالتالي:
PHP كود :
uses
IdHTTP, IdSSLOpenSSL, jpeg, pngimage;
procedure TForm1.Button1Click(Sender: TObject);
var
HTTP: TIdHTTP;
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
Stream: TMemoryStream;
Jpg: TJPEGImage;
Png: TPngImage;
begin
HTTP := TIdHTTP.Create(nil);
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
Stream := TMemoryStream.Create;
Jpg := TJPEGImage.Create;
Png := TPngImage.Create;
try
HTTP.IOHandler := IdSSLIOHandlerSocket;
try
HTTP.Get('https://d.top4top.net/p_455jyqt61.jpg', Stream);
Stream.Position := 0;
if HTTP.Response.ContentType = 'image/jpeg' then
begin
Jpg.LoadFromStream(Stream);
Image1.Picture.Assign(Jpg);
end;
if HTTP.Response.ContentType = 'image/png' then
begin
Png.LoadFromStream(Stream);
Image1.Picture.Assign(Png);
end;
except
// Error
end;
finally
Jpg.Free;
Png.Free;
Stream.Free;
HTTP.Free;
end;
end;
بارك الله فيك اخي وصلت الفكرة جزاك الله كل خير
تبقى مشكلة ضبابية الصورة لا تظهر بالشكل المطلوب ما السبب؟
تمام جربت على صور اخرى وتظهر جيدا المشكلة في نوعية الصورة على ما اعتقد جزاك الله كل خير