关于一位兄弟——把多个图片文件存储到一个二进制文件中的问题的回复

happyjun2000 2004-10-29 09:46:22
记得昨天看到一位兄弟要把多个图片文件存储到一个二进制文件中的问题?
可是今天找不到了那个帖子了,我写了个小应用,不一定是他想要的那种,
但是应该也可以实现他的要求,贴一下供大家参考。

using System.Drawing;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using System.Xml.Serialization;
using System.Runtime.Serialization;

private void btnLinkPic_Click(object sender, System.EventArgs e)
{
ArrayList al = new ArrayList( ) ;
System.Drawing.Image oImg ;
oImg = System.Drawing.Image.FromFile( "c:\\linkPic\\1.jpg" );
al.Add( oImg ) ;
oImg = System.Drawing.Image.FromFile( "c:\\linkPic\\2.jpg" );
al.Add( oImg ) ;
oImg = System.Drawing.Image.FromFile( "c:\\linkPic\\3.jpg" );
al.Add( oImg ) ;
Serialization_ByBinary ( al ) ;
}
private void btnSplitPic_Click(object sender, System.EventArgs e)
{
ArrayList al = DeSerialization_ByBinary ( ) ;
System.Drawing.Image oImg = ( System.Drawing.Image ) al[1] ;
//输出图象文件
oImg.Save ( "c:\\linkPic\\new.jpg" ,System.Drawing.Imaging.ImageFormat.Jpeg ) ;
}
public void Serialization_ByBinary ( ArrayList oal )
{
IFormatter _formatter = new BinaryFormatter ( ) ;
Stream _stream = new FileStream ( "c:\\linkPic\\pic.bin" , FileMode.Create ,FileAccess.Write ,FileShare.None ) ;
_formatter.Serialize( _stream , oal ) ;
_stream.Close ( ) ;
}

public ArrayList DeSerialization_ByBinary ( )
{
Stream _stream = File.Open ( "c:\\linkPic\\pic.bin" , FileMode.Open ) ;

BinaryFormatter _b = new BinaryFormatter( ) ;
ArrayList _al = ( ArrayList ) _b.Deserialize ( _stream ) ;
_stream.Close ( ) ;
return _al ;
}
...全文
105 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yangqi0223 2004-10-29
您搞错了
http://community.csdn.net/Expert/topic/3498/3498900.xml?temp=.4829981
回复
yangqi0223 2004-10-29
是我要的,MARK先
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-10-29 09:46
社区公告

让您成为最强悍的C#开发者