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

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 ;
}
...全文
148 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangqi0223 2004-10-29
  • 打赏
  • 举报
回复
您搞错了
http://community.csdn.net/Expert/topic/3498/3498900.xml?temp=.4829981
yangqi0223 2004-10-29
  • 打赏
  • 举报
回复
是我要的,MARK先

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧