delphi显示多张图片

longai123 2013-01-31 09:48:44
image1.Picture.LoadFromFile(fList.ListBox1.Items[index]);
fMain.Canvas.Draw(0,0,Image1.Picture.Graphic);
显示到第十三第十四张出现AccessViolation
错误。。
每张相有4M
...全文
1910 33 点赞 打赏 收藏 举报
写回复
33 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gfmweb 2014-08-31
我也测试过楼主的软件,真的没有问题,只是014-016的图片,有问题,有可能这两个图片是BMP或JPEG文件 直接修改扩展名所致,把他用ACDSee 5.0另存为 JPG文件就正常了! 另 题外话,图片展显,直接用ACDSee 就可了。为何要写软件做呢??除非是作业没有办法!!
  • 打赏
  • 举报
回复
bihai 2013-02-18
有问题的图片的模式都有问题,即正常的为RGB,而有问题的都是CMYK格式的图片。 CMYK图片如果宽度超过SCREEN的宽度较多时,就会出错。
  • 打赏
  • 举报
回复
静_海 2013-02-06
引用 28 楼 longai123 的回复:
52张图片有七张播放是有问题的。。都不知为什么会这样的呢。。 公司年会已过。。用flash播放。。 哪位大神能帮我分析下原因。。小女子以身相许..............
早听人说,码农堆里的女孩儿日子过得像公主,今日领教了。 既然已不急用,何不自己好好研究下?那能学到更多。 我用 Fireworks 把 014 和 016 另存了下,再播放就没问题了。你自己试试吧。 把压缩率增大些,图片能小很多,画面看上去并无多大差别。 顺便问下:挺好的宾馆,为何那个静慧楼弄得如此破败?
  • 打赏
  • 举报
回复
feiying83878387 2013-02-06
是资源没有没有释放吗?
  • 打赏
  • 举报
回复
hsfzxjy 2013-02-05
楼主不是男生么。。
  • 打赏
  • 举报
回复
longai123 2013-02-05
http://download.csdn.net/detail/longai123/5053476 http://download.csdn.net/detail/longai123/5053447 图片已上传了。。哪位大神帮下我。。花了半个小时上传。。 1将照片放在C:\图像动画系统目录下....这个我写死左 一定要将照片和照片2放在C:\图像动画系统目录下 因为是播放到第十三或第十张出错。。 小女子在此谢过了....
  • 打赏
  • 举报
回复
longai123 2013-02-05
还有程序运行有点卡。。不知哪位大神帮我改改。改为多线程。。。共同进步....
  • 打赏
  • 举报
回复
longai123 2013-02-05
52张图片有七张播放是有问题的。。都不知为什么会这样的呢。。 公司年会已过。。用flash播放。。 哪位大神能帮我分析下原因。。小女子以身相许..............
  • 打赏
  • 举报
回复
simonhehe 2013-02-05
引用 25 楼 longai123 的回复:
有没有人帮我看下什么原因啊。。。环境搞出来了....
直接用你的可执行程序, 出错 用D7/D XE打开你的项目不做修改编译, 执行不出错 :) 你使用的图片大小差异较大, 切换不流畅 我试着做了个数据缓冲, 效果好很多, 显示比较平滑. 如果楼主只能用d6的话, 做以下优化试试, 那条能解决问题采纳那条: 1 将多个图片文件的大小控制在较小范围(你提供的图片大的14m, 小的700k, 这样展示是效果不好); 2 在加载图片时, 做个锁定和延时 ----------------------------------------
//定时器响应事件
procedure TfMain.Timer1Timer(Sender: TObject);
begin
    //列表中一定要有内容
  if fList.ListBox1.Count>0 then
  begin
    if Order then
    begin
      //顺行
      if index<fList.ListBox1.Count-1 then
        index:=index+1
      else
        index:=0;
    end
    else
    begin
      //逆行
      if index>0 then
        index:=index-1
      else
        index:=fList.ListBox1.Count-1;
    end;

    //获得图片
    try
      image1.Picture.LoadFromFile(fList.ListBox1.Items[index]);
      fMain.Canvas.Lock;
      fMain.Canvas.Draw(0,0,Image1.Picture.Graphic);
      fMain.Canvas.Unlock;
      Sleep(100);
    except on E: Exception do
      ShowMessage(e.Message);
    end;
  end
  else
  begin
    Timer1.Enabled:=false;
    Image1.Picture:=nil;
    showmessage('该动画没有图像列表,请添加文件!');
  end;
end;
3 如果图片大小和数量你无法控制, 最好做个数据缓冲以保证切换的流畅性 ====================================== PS : 所提建议本人都做了相关测试, 但不能保证一定可以解决LZ遇到的问题
  • 打赏
  • 举报
回复
静_海 2013-02-05
我帮你看了一下,祸首是 014 和 016 这两张图片。把这两个家伙推出去砍了,什么事都没了。
  • 打赏
  • 举报
回复
simonhehe 2013-02-05
引用 19 楼 HSFZXJY 的回复:
楼主不是男生么。。
难道LZ色诱?? :) 用楼主的可执行文件, lz的7张照片, 运行N久, 没出错... LZ你把程序放到别人电脑上试试, 出错不.
  • 打赏
  • 举报
回复
longai123 2013-02-05
有没有人帮我看下什么原因啊。。。环境搞出来了....
  • 打赏
  • 举报
回复
静_海 2013-02-05
引用 19 楼 HSFZXJY 的回复:
楼主不是男生么。。
CSDN 也兴男扮女装呀?以后俺得小心了,喊错了性别对不住人家。
  • 打赏
  • 举报
回复
longai123 2013-02-05
图片我上传了。将照片和照片2的图片放在C:\图像动画系统目录.. 就会出错。。。不知是什么原因。。真想搞出什么原因呢...
  • 打赏
  • 举报
回复
simonhehe 2013-02-05
引用 21 楼 longai123 的回复:
都说了不是7张照片要运行到第十三张或第十四张才出错.........
LZ注意看我15,16楼的回复, 我用自己的图片(5M以上)60多张图片轮换没有报异常 20楼也做了测试建议...
  • 打赏
  • 举报
回复
longai123 2013-02-05
都说了不是7张照片要运行到第十三张或第十四张才出错.........
  • 打赏
  • 举报
回复
simonhehe 2013-02-04
我用的都是5M以上的图片, 测试过程中, cpu和内存都没异常
  • 打赏
  • 举报
回复
simonhehe 2013-02-04
引用 14 楼 longai123 的回复:
图片太大了。一张4M你可以找些自已的图片啊...
我这加载了图片没有出错 弱弱的滴问, 你的图片文件没损坏吧 :)
  • 打赏
  • 举报
回复
longai123 2013-02-04
图片太大了。一张4M你可以找些自已的图片啊...
  • 打赏
  • 举报
回复
静_海 2013-02-04
引用 14 楼 longai123 的回复:
图片太大了。一张4M你可以找些自已的图片啊...
软件测试要旨之一:程序任何部分都可能出错。也许这句话对你有用。 其实,你要是跟踪到 LoadFromFile 这里出错,就可以立即断定:不是你的图片有问题,就是 Delphi 有问题。
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
GAME,图形处理/多媒体
加入

1169

社区成员

Delphi GAME,图形处理/多媒体
申请成为版主
帖子事件
创建了帖子
2013-01-31 09:48
社区公告
暂无公告