有人知道如何用C/C++/C#将.GIF格式的图片读取并且显示出来?

希望可以讲消息点,分不够我加!

c#picture可以直接显示gif

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing.Imaging;

namespace WindowsApplication1
{
/// <summary>
/// Form8 的摘要说明。
/// </summary>
public class animateImage : System.Windows.Forms.Form
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
Bitmap animatedImage = new Bitmap("1.gif");
bool currentlyAnimating = false;
public animateImage()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
//
// Form8
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(536, 438);
this.Name = "Form8";
this.Text = "Form8";
this.Load += new System.EventHandler(this.Form8_Load);

}
#endregion
// [STAThread]
// static void Main()
// {
// Application.Run(new Form2());
// }

private void Form8_Load(object sender, System.EventArgs e)
{

//This method begins the animation.

}
public void AnimateImage()
{
if (!currentlyAnimating)
{
//Begin the animation only once.
ImageAnimator.Animate(animatedImage, new EventHandler(this.OnFrameChanged));
currentlyAnimating = true;

}
}
private void OnFrameChanged(object o, EventArgs e)
{
//Force a call to the Paint event handler.
this.Invalidate();
}
protected override void OnPaint(PaintEventArgs e)
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint,true);
this.SetStyle(ControlStyles.DoubleBuffer,true);
//Begin the animation.
AnimateImage();
//Get the next frame ready for rendering.
ImageAnimator.UpdateFrames();
//Draw the next frame in the animation.
e.Graphics.DrawImage(this.animatedImage, new Point(0, 0));
e.Graphics.DrawString("哈哈",new Font("Tahoma",12),new SolidBrush(Color.Red),10,10);
}
// public static void Main()
// {
// Application.Run(new animateImage());
// }

}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-11-26
C/C++并不内置的支持GIF格式的显示
但实际上,GIF图片本质上就是把点阵图片按某种特定的格式进行的压缩,那么用C/C++去显示gif图片的过程则必然转换成这个解压缩到过程(实际上不光C/C++,所有的语言都是,只不过如楼上所讲C#“内置”了这个“解压”的过程,并且内置了一个“界面”供它来显示)。

要知道如何解压,则必须知道如何压缩,如果组织必要的信息,你可以搜索“GIF图形文件格式文档”获取详细资料

有人知道如何用C\/C++\/C#将.GIF格式的图片读取并且显示出来?
c#picture可以直接显示gif using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Drawing.Imaging;namespace WindowsApplication1 { \/\/\/ \/\/\/ Form8 的摘要说明。\/\/\/ public class anim...

用C++如何读取图片
1、第一步,在图片采样软件中找到软件快捷方式,然后单击以打开该软件,如下图所示,然后进入下一步。2、其次,完成上述步骤后,已经进入了取模软件,单击“载入图片”按钮以添加图片,如下图所示,然后进入下一步。3、接着,完成上述步骤后,选择要添加的图片,单击以选择图片,然后单击“打开”按钮,...

摄像机标定:c++怎么读取txt文件命名的jpg格式图片,并且用于摄像机标定...
\/* 在图像上显示角点位置 *\/ drawChessboardCorners(view_gray, board_size, image_points_buf, false); \/\/用于在图片中标记角点 imshow("Camera Calibration", view_gray);\/\/显示图片 waitKey(500);\/\/暂停0.5S } } int total = image_points_seq.size(); cout << "total = " << total << en...

如何用VC++的MFC编程读取并显示图片?
读取位图并显示,虽然这是很简单的操作,课实现起来并不是很容易的,涉及到位图在内存中的存储方式,位图的数据的样式,调用位图,刷新视图等操作。略有复杂,要从原理上去了解这些,然后用vc的代码去实现。建议你上网搜“孙鑫vc教程”,会有些提高的。由于你要的操作代码其实是很长的,要两三页纸那么...

c\/c++\/java\/c#读取png图片
import java.awt.image.*;import java.util.Random;import java.io.*;import javax.swing.*;public class LoadImage { \/ param args \/ public static void main(String[] args) { String myreadline = "";\/\/定义一个String类型的变量,用来每次读取一行 try { FileReader fr = new FileReader("...

C++ 读取和显示文件内容
include <fstream> using namespace std;void main(){ string b;ifstream c("abc.txt");\/\/这个就是你要读取的文件的路径!如果是在当前文件下就这样写,如果是在C盘下 则这样 C:\/abc.txt while (getline(c,b)){ cout<<b<<endl;\/\/这个就是输出的内容!} } 还有什么不懂的可以问我 ...

c++如何实现将剪贴版中的图片(gif,jpeg,bmp等)保存为图片文件
首先打开word,使你想要图片处于编辑状态(这个应该知道吧,就是选中状态),按下Ctrl+c(复制快捷键).此时这个图片存在剪贴版中,下一步是打开windows系统自带的附件里的画图工具,在编辑里面选择粘贴即可看见你要的图片,保存即可.还有一种方法也很简单,将图片复制到剪贴版中之后,打开qq在和别人聊天模式下,不...

c\/c++ cgi程序如何输出图片和其它二进制文件?
cgi输出图片和其他二进制文件是需要区别对待的。主要差别在于设置好返回的response-head部分的mime-type。图片应该是image\/jpeg,而二进制文件下载应该是application\/octet-stream,当然还需要处理一下content-length这个头部。至于说内容,不论用read还是fread源文件数据后,通过write或者fwrite到stdout(write用句柄...

在c\/c++编程中,如何读取没有后缀名的文件进行操作?
读取没有后缀名的文件和有后缀名的文件是一样,因为C++是根据文件名来操作的,是不管扩展名的,C++读取文件是简单的, 步骤如下:第一步:打开文件 fstream file1( "temp" ,ios::out|ios::in); \/\/temp 为你要读取的文件名 第二步:读取文件内容 fin.get(ch); \/\/读文件中的一个字符...

C\/C++不用MFC,可以弄出类似FLASH或者GIF动画的工具来么
Gif估计你也会烦... Flash就是一个ActiveX控件,比较方便。看看CAxWindow应该就明白了。创建控件的时候用ShockwaveFlash.ShockwaveFlash.x 作为窗口名(.x是flash的版本号),就能创建出flash控件。然后从控件里获取一个IShockwaveFlash的接口就行了。当然别忘了倒入flash的ocx。

相似回答