网上找到的用xml传输图片
2016-03-05 12:24
253 查看
先记下来,试过后如果可用,就保留下来。
用到ZLIB和base64
Procedure StrToBmpStream(v: OleVariant; Var Stream: TMemoryStream);
Var
Str: String;
MS1: TStringStream;
MS2: TMemoryStream;
Begin
If VarIsNull(v) Then Exit;
Str := VarToStr(v);
If Str = '' Then Exit;
MS1 := TStringStream.Create(Str);
MS2 := TMemoryStream.Create;
Base64DeCodeStream(MS1, MS2);
MS2.Position := 0;
ZDecompressStream(MS2, Stream);
Stream.Position := 0;
FreeAndNil(MS2);
FreeAndNil(MS1);
End;
Function BmpStreamToStr(Stream: TMemoryStream): String;
Var
MS1: TMemoryStream;
MS2: TStringStream;
Begin
MS1 := TMemoryStream.Create;
MS2 := TStringStream.Create('');
Stream.Position := 0;
ZCompressStream(Stream, MS1, zcMax);
MS1.Position := 0;
Base64EnCodeStream(MS1, MS2);
Result := MS2.DataString;
FreeAndNil(MS2);
FreeAndNil(MS1);
End;
ms := TMemoryStream.Create;
StrToBmpStream('这里是BASE64编码的字符', ms);
image1.Picture.Bitmap.LoadFromStream(ms);
MS.Clear;
image1.Picture.Bitmap.SaveToStream(MS);
str:=BmpStreamToStr(MS)
将字符保存到XML即可
用到ZLIB和base64
Procedure StrToBmpStream(v: OleVariant; Var Stream: TMemoryStream);
Var
Str: String;
MS1: TStringStream;
MS2: TMemoryStream;
Begin
If VarIsNull(v) Then Exit;
Str := VarToStr(v);
If Str = '' Then Exit;
MS1 := TStringStream.Create(Str);
MS2 := TMemoryStream.Create;
Base64DeCodeStream(MS1, MS2);
MS2.Position := 0;
ZDecompressStream(MS2, Stream);
Stream.Position := 0;
FreeAndNil(MS2);
FreeAndNil(MS1);
End;
Function BmpStreamToStr(Stream: TMemoryStream): String;
Var
MS1: TMemoryStream;
MS2: TStringStream;
Begin
MS1 := TMemoryStream.Create;
MS2 := TStringStream.Create('');
Stream.Position := 0;
ZCompressStream(Stream, MS1, zcMax);
MS1.Position := 0;
Base64EnCodeStream(MS1, MS2);
Result := MS2.DataString;
FreeAndNil(MS2);
FreeAndNil(MS1);
End;
ms := TMemoryStream.Create;
StrToBmpStream('这里是BASE64编码的字符', ms);
image1.Picture.Bitmap.LoadFromStream(ms);
MS.Clear;
image1.Picture.Bitmap.SaveToStream(MS);
str:=BmpStreamToStr(MS)
将字符保存到XML即可
相关文章推荐
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误的问题的原由
- SPRING IN ACTION 第4版笔记-第六章RENDERING WEB VIEWS-006- 使用thymeleaf(TemplateResolver、SpringTemplateEngine、ThymeleafViewResolver、th:include、th:object、th:field="*{firstName}")
- 初次使用Android Studio的配置问题
- lex和yacc 入门-- 计算器
- linux学习之c语言swap函数
- 当滚动页面到一定程度时,页顶菜单浮动固定在页面顶部
- Python内存管理机制
- 用两个栈模拟一个队列
- uva10602 - Editor Nottoobad
- 关于自适应网站的总结
- JS面向对象组件(六) -- 拖拽功能以及组件的延展
- swift 调用第三方的oc 方法
- eclipse 快捷键
- leetcode:Two Sum 【Java】
- elasticsearch小记之—— unmapped_type的使用
- HDU 1535 SPFA 前向星存图优化
- 结转时数据进一步修正
- Redis 入门学习时不理解的问题
- 管理2
- p68 对数变换 关于fft2 fftshift 频谱