工程中引用System.Runtime.Serialization.Formatters.Soap
using namespace System::IO;
using namespace System::Runtime::Serialization::Formatters::Soap;
//SoapFormatter类 以 SOAP 格式将对象或整个连接对象的图形序列化和反序列化。
//保存为XML文件
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
String^ FileName;
FileStream^ OutFileStream;
if(this->pictureBox1->Image == nullptr)
return;
if(this->saveFileDialog1->ShowDialog() != System::Windows::Forms::DialogResult::OK)
return;
try{
FileName = this->saveFileDialog1->FileName;
OutFileStream = gcnew FileStream(FileName, FileMode::Create, FileAccess::Write, FileShare::None);
SoapFormatter^ MySoap = gcnew SoapFormatter();
MySoap->Serialize(OutFileStream, this->pictureBox1->Image);
OutFileStream->Close();
this->pictureBox1->Image = nullptr;
MessageBox::Show("success", "", MessageBoxButtons::OK, MessageBoxIcon::Information);
}
catch(Exception^ eee){
MessageBox::Show(eee->Message, "", MessageBoxButtons::OK, MessageBoxIcon::Information);
}
}
//显示XML图像文件
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
if(this->openFileDialog2->ShowDialog() != System::Windows::Forms::DialogResult::OK)
return;
String^ FileName;
Stream^ MyStream;
SoapFormatter^ MySoap;
try{
FileName = this->openFileDialog2->FileName;
MyStream = gcnew FileStream(FileName, FileMode::Open, FileAccess::Read, FileShare::None);
MySoap = gcnew SoapFormatter();
this->pictureBox1->Image = (Bitmap^)(MySoap->Deserialize(MyStream));
MyStream->Close();
}
catch(Exception^ eee){
MessageBox::Show(eee->Message, "", MessageBoxButtons::OK, MessageBoxIcon::Information);
}
}