DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: 33227
今日帖子: 17
在线用户: 10
导航: 论坛 -> Web应用开发 斑竹:bodies  
作者:
男 sun2016 (sun) ▲▲▲△△ -
普通会员
2016/9/21 16:51:28
标题:
请问 IdHTTP.Get 取网络图片到本地 image时如何解决出现半幅图片? 浏览:1714
加入我的收藏
楼主: image1 我在本地时先load一幅png图片,

如果网络正常,用 IdHTTP.Get  取网络图片到本地 image1 取代已load图片,是正常的;

如果网络很慢时,则本地图片会被取代为半幅图片,即只有上半截,下半截是白色;或直接就是整幅白色图片,估计没下载下来;

我要的效果是 如果网络不通,用本地已load图片,如果网络通用网络的;

**********
请问: 现在网络不好的情况下。如何能够判断网络图片下载完整才更新image1里面的图片呢? 而不至于出现半幅图片或白图片?

空白 用 if MemStream1<>nil 也无效。。因为有时手机上网只有2G。。

谢谢;

我现在的代码:
.......
IdHTTP1.Get('http://abc***.com/1.png', MemStream1)
.......
Image1.Bitmap.LoadFromStream(MemStream1);
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
作者:
男 hujiacheng ( 旺财) ★☆☆☆☆ -
普通会员
2016/9/21 20:42:47
1楼: 只 下载了一半?
----------------------------------------------
免费的FTPhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi.icm.edu.pl/ftp/https://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019>http://delphi-z.ruhttps://download-installer.cdn.mozilla.net/pub/firefox/releases/43.0/win64/zh-CN/https://cc.embarcadero.com/Author/575019
作者:
男 sun2016 (sun) ▲▲▲△△ -
普通会员
2016/9/21 21:32:47
2楼: **使用 FMX,没有了 image1.picture.graphic 属性**

应该说只 显示一半, image1 只显示了 图片的 上半部分。

看看有没有办法判断 下载的图片 已经下载完成,

我用 方法1:
IdHTTP1.Get('http://abc***.com/1.png', MemStream1);
if MemStream1<>nil then Image1.Bitmap.LoadFromStream(MemStream1);


BMP1:=TBitmap.Create;
 IdHTTP1.Get('http://abc***.com/1.png', MemStream1)
BMP1.LoadFromStream(MemStream1);
if BMP1.IsEmpty<>True then Image1.Bitmap.Assign(BMP1);

以上均不行。。

请问有什么方法可以判断 图片 已经下载 完整呢?
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
作者:
男 zoujun3281 (无奈) ▲▲▲▲▲ -
普通会员
2016/9/22 9:10:33
3楼: 要是客户端服务端都是你的加个验证就行了啊
----------------------------------------------
delphi你妹
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/9/22 9:13:01
4楼: 楼主 http 协议 是有 文件大小的。
你先获取 文件大小。
然后下载完了 检查大小。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 diystar (diystar) ★☆☆☆☆ -
普通会员
2016/9/22 11:12:50
5楼: 顶楼上。
类似这样:
  IdHTTP1.Get(s,tmpStream);
  if tmpStream.Size=IdHTTP1.Response.ContentLength then
  ..
----------------------------------------------
http://mcool.appinn.me/
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/9/22 11:31:33
6楼: 还有一种可能,你的服务器只传了一半给你。
这就得问你的服务器 对 http 的协议要求了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 yuzhenguo0 (金远见) ▲▲▲▲▲ -
普通会员
2016/9/22 12:10:49
7楼: HTTP 也会 分段 发数据?
----------------------------------------------
学DELPHI http://www.studydelphi.com
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2016/9/22 15:49:53
9楼: 事实证明,楼主是瞎子,大家的回答,他看不见。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 sun2016 (sun) ▲▲▲△△ -
普通会员
2016/9/22 16:01:24
10楼: 重新看了一次,看到了。。。

谢谢楼上各位。。。
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS