CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请问在winfrom的pictureBox上如何放可能有动画的gif图片?

楼主Lvyou1980(Lvyou)2004-09-04 03:11:15 在 .NET技术 / C# 提问

现在要在一个pictureBox控件上显示jpg、bmp或gif图片,如果是只有一帧的静态还正常,但是如果是动画的gif图片,pictureBox就显示出很多个来,并且每个上面都是红色交叉。不知该如何才能保证可以显示静态与动态的图片?请各位大侠赐教!^_^ 问题点数:20、回复次数:9Top

1 楼hxhbluestar(贺星河)回复于 2004-09-04 06:10:49 得分 3

是吗?我好象没有碰到过这个问题  
   
  如果实在不行就把图片放在Panel中或者放在Label上,看看能不能解决  
   
  Top

2 楼jinbingg(bing)回复于 2004-09-04 08:33:25 得分 3

放在label上就可以实现的Top

3 楼hanbinghai(海宁)回复于 2004-09-04 09:13:23 得分 2

放在label上的确可以实现,学了一招Top

4 楼Lvyou1980(Lvyou)回复于 2004-09-04 11:18:18 得分 0

还是不行啊,我的图片数据是从数据库读出来,然后通过流赋给bitmap对象,再赋给Image对象,然后赋给Label的Image属性的,但是还是不行,显示静态的图片就可以,动态的图片显示清况跟picturebox的一样,出现N个有X的Label。  
   
  我的代码如下:  
  DataRow   dataRowProduct   =   dataSet.Tables["Product"].Rows.Find(currentProductID);  
  this.byteProductImage   =   new   byte[((byte[])dataRowProduct["ImageData"]).Length];  
  this.byteProductImage   =   (byte[])dataRowProduct["ImageData"];  
  MemoryStream   memoryStreamImage   =   new   MemoryStream();  
  memoryStreamImage.Write(this.byteProductImage,0,this.byteProductImage.Length);  
   
  bitmapProduct   =   new   Bitmap(memoryStreamImage);  
   
  this.imageProduct   =   this.bitmapProduct;  
  this.imageWidth   =   this.bitmapProduct.Width;  
  this.imageHeight   =   this.bitmapProduct.Height;  
  memoryStreamImage.Close();  
   
  this.labelProductImage.Image   =   this.imageProduct;  
  this.labelProductImage.Width   =   this.imageWidth;  
  this.labelProductImage.Height   =   this.imageHeight;  
  this.labelProductImage.Left   =   (this.Width/2)-((int)(this.imageWidth/2));  
  this.labelProductImage.Top     =   (this.Height/2)-((int)(this.imageHeight/2));  
  this.labelProductImage.Visible   =   true;  
   
   
  不知你们的是怎么实现的呢?  
   
  Top

5 楼coollzh(良子)回复于 2004-09-05 01:59:40 得分 3

你最好用Datareader读blob内容(byte[])  
   
  假设你读取的数据为byte[]   data,显示图片用picturebox,我试过可以的  
  byte[]     data;  
   
  string   sqlText   =   "SELECT   img_data,   img_contenttype   FROM   Image   WHERE   img_pk   =   "   +   ImageId;  
   
  SqlConnection   connection   =   new   SqlConnection(   connstring   );  
  SqlCommand   command   =   new   SqlCommand(   sqlText,   connection);  
   
  //open   the   database   and   get   a   datareader  
  connection.Open();  
  SqlDataReader   dr   =   command.ExecuteReader();  
  if   (   dr.Read())    
  {  
  data=(byte[])   dr["img_data"]   ;  
   
  }  
   
  MemoryStream   ms   =   new   MemoryStream(data);  
   
  Image   img   =   new   Bitmap(ms);  
  this.pictureBox1.Image=img;  
  Top

6 楼doinfo(野比效果器)回复于 2004-09-05 08:13:57 得分 4

嗯,如果是我得话,用pictureBox   得话,会从库中读出图片,然后在资源里面建议这个一个文件,把动画图片写好,再装到pictureBox里面。就没事了。  
   
  你可以试试,pictureBox是可以直接显示GIF动画的。不会有一点异样Top

7 楼xj516(流浪汉)回复于 2004-09-05 09:10:47 得分 3

我的例子是没问题的:  
  Image   ima=new   Bitmap(@"H:\图片\素材库\箭头动画\07arrow15.gif");  
  this.pictureBox1.Image=ima;Top

8 楼Lvyou1980(Lvyou)回复于 2004-09-05 20:26:44 得分 0

coollzh(良子)的方法和我的似乎没有什么不同,但在我的程序里就是不能显示有动画的GIF图片(普通的GIF可以显示),doinfo(野比效果器)和xj516(流浪汉)的方法其实是同属一种,都是有了一个文件,我也用过的,虽然是可以,不过感觉将数据库的数据读出来还要进行一步在硬盘里保存为一个文件,然后再用bitmap取出来,程序就显得有点罗嗦了,不过没有其它好办法就只好这样做了。另外我觉得像doinfo(野比效果器)那样在资源里创建一个文件的方式不够在硬盘上创建一个文件的方式好,因为资源是保存比较固定的资源文件的,而这里的图片数据会很频繁地更新,保存在资源里的话,可能会导致性能有所下降。Top

9 楼coollzh(良子)回复于 2004-09-05 22:11:35 得分 2

我从本地load到内存,然后生成image的,动画可以动呀:)Top

相关问题

  • GIF动画图片
  • 动画GIF的格式
  • vb中支持gif动画
  • 怎样制作gif动画
  • 怎么播放Gif动画?
  • GIF动画如何压缩?
  • GIF动画如何压缩?
  • winform 显示 Gif动画
  • 兄弟们:哪里有可以显示gif图片的控件,image和picturebox都不能把gif显示成动画,而只显示为静态的图片?
  • vb.net开发PPC的程序,在PictureBox中加载GIF格式的图片,在设计的时候可以看到动画,怎么运行后不行呢?

关键词

  • 文件
  • 数据
  • picturebox
  • labelproductimage
  • 图片
  • 动画
  • byteproductimage
  • bitmapproduct
  • memorystreamimage
  • datarowproduct

得分解答快速导航

  • 帖主:Lvyou1980
  • hxhbluestar
  • jinbingg
  • hanbinghai
  • coollzh
  • doinfo
  • xj516
  • coollzh

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo