Utiliza un
TMemoryStream y vuelca directamente el contenido del
TImage al Stream.
Más o menos siguiendo el código que has puesto...
Código Delphi
[-]
procedure TForm1.Button3Click(Sender: TObject);
begin
IdFTP1.Username:= 'jaguero';
IdFTP1.Password:= '123456789';
IdFTP1.Port:= 21;
IdFTP1.Host:= '192.168.1.185';
try
IdFTP1.Connect;
idFTP1.ChangeDir('tmp');
s := TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(s);
IdFTP1.Put(s, 'image1.jpg', false);
showmessage('Listo');
IdFTP1.Disconnect;
finally
FreeAndNil(s);
end;
except
showmessage('Negativo');
end;
end;