二进制文件转成文本保存,并可以读回
以 JPEG 图片为例,以下代码演示了如何将一个 JPEG 图片保存为纯文本形式,并将其以图片形式读回并显示。
保存 TXT:
function TForm1.JpegToText(AFileName:string; SaveFile: Boolean; TxtFileName: string): string; var FileStream : TFileStream; StringStream : TStringStream; FSize : integer; FileData : string; i : integer; DataStr : string; begin tryFileStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);StringStream := TStringStream.Create(EmptyStr);FSize := FileStream.Size;StringStream.CopyFrom(FileStream, FSize);FileData := StringStream.DataString;DataStr := EmptyStr;for i := 1 to Length(FileData) dobeginDataStr := DataStr + InttoHex(Ord(FileData[i]), 2);end;Result := DataStr;if SaveFile thenbeginwith TStringList.Create dobeginText := DataStr;SaveToFile(TxtFileName);Free;end; end; finallyfreeandnil(FileStream);freeandnil(StringStream); end; end;
从 TXT 读回 JPEG:
function TForm1.TextToJpeg(AFileName: string; SaveFile: Boolean; JpegFileName: string): TJPEGImage; var buf : array of Byte; DataLength : Integer; i : Integer; DataStr : string; ByteFile : file of byte; jpg : TJPEGImage; tmpFileName: string; begin with TStringList.Create do beginLoadFromFile(AFileName);DataStr := Text;Free; end; DataLength := Length(DataStr) div 2-1; SetLength(buf, DataLength); for i := 1 to DataLength do beginbuf[i - 1] := StrToInt('$' + copy(DataStr, (i - 1) * 2 + 1, 2)); end; tmpFileName := ExtractFilePath(ParamStr(0))+'tmp.jpg'; AssignFile(ByteFile, tmpFileName); Rewrite(ByteFile); for i := 0 to DataLength - 1 do beginwrite(ByteFile, buf[i]); end; CloseFile(ByteFile); Result := TJPEGImage.Create; Result.LoadFromFile(tmpFileName); if SaveFile thenResult.SaveToFile(JpegFileName); DeleteFile(tmpFileName); end;
转载于:https://www.cnblogs.com/xiongyingfeixiang/archive/2011/12/08/2280251.html
二进制文件转成文本保存,并可以读回相关推荐
- Android文本保存成PDF格式
支持Android文本保存成PDF格式,Canvas画图保存JPG格式导出PDF格式,使用itextpdf-5.5.1.jar包 项目地址:http://download.csdn.net/downl ...
- 老问题,SQL保存图片。保存以后再读出来,发现stream的大小不一致。虽然老,但没搜到结果。...
老问题,SQL保存图片.保存以后再读出来,发现stream的大小不一致.虽然老,但没搜到结果. Delphi / Windows SDK/API http://www.delphi2007.net/D ...
- php+打开图片二进制文件,php接收二进制文件转换成图片
$GLOBALS['HTTP_RAW_POST_DATA'] 最近在做Flash在线裁剪图片 生成图片的东西. 通过Flash POST 图片的二进制数据给php,由php生成图片保存. 开始想到用$ ...
- 剪映+json解析将视频中的声音转换成文本
前言 有时候我们想将一段视频中的音频转换成文本,最简单最笨的方法就是通过人耳去听,然后通过打字打出来.但这种方法无疑是十分费劲的.机智的小伙伴肯定都知道我们可以借助语音识别工具来做这件事,但是比较现实 ...
- php+转为文本,PHP将HTML转换成文本的实现代码
PHP将HTML转换成文本的实现代码 核心代码: // $document 应包含一个 HTML 文档. // 本例将去掉 HTML 标记,javascript 代码 // 和空白字符.还会将一些通用 ...
- 转python 将base64字符串还原成图片保存
转python 将base64字符串还原成图片保存 import os,base64 strs='''/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLC ...
- 一小时会议录音,30秒整理成文本,录音转文字这个方法很简单
作为一个公司职员,每周的例会是难免的,用于会议记录不仅浪费时间,而且还记不全,相信很多朋友都有和我一样的苦恼,最近我学到了一个新功能,如何将一小时的录音30秒转换成文本,爽歪歪,接下来,和大家分享一下 ...
- Excel列数值格式强制转成文本格式
Excel数据导入SQL时,带小数点或者科学计数法的数字类型列,导入SQL后,如果目标值是字符串格式,导入后,小数点后会出现很多位数,进而对数据有影响,需要对原始数据列进行转文本处理.记录下一种方法: ...
- excel 科学计数法转换成文本完整显示_避免万次暴击,巧办法解决数字和文本之间的快速转化...
很多朋友在在数据整理的过程中都遇到过下图这种情况,大量数字内容,因为数字内容较长,excel以科学计数法进行了显示,多数时候我们会选中列设置单元格格式为文本,但单元格内容并不会转化为文本,需要对每个单 ...
- EXCEL数字前补零且转换成文本型
EXCEL数字前补零且转换成文本型 方法一.使用公式="0"&A2,只能根据需要补零: 方法二.使用公式=REPT(0,8-LEN(A2))&A2, 自动为数值补 ...
最新文章
- 知乎13万赞!为何很多名校毕业生,都输在了人生后半程
- 企业部署Windows 8 Store 风格应用
- linux专用的opencv下载链接(持续更新)
- 02-eclipse中使用git
- deepfakes怎么用_[mcj]deepfakesApp使用说明(2)
- C#泛型委托Predicate、Action、Func
- 链表相关的面试题型总结
- [LeetCode] 860. 柠檬水找零 lemonade-change(贪心算法)
- keras实现多层LSTM
- 派生类构造的时候一定要调用_分手的时候,一定要好好说再见
- 微分方程matlab绘图,Matlab学习——求解微分方程(组)
- Excel中表单控件和ACTIVEX控件主要区别
- Session使用方法详解
- SPSS之单因素方差分析
- NIPS2022各学校统计,去China是200+哦~
- CSS Reset(样式重置)
- 法航AF447失事,机上有228人
- 1-给出n阶方阵里所有数,求方阵里所有数的和(华为机试)
- 立方根用计算机怎么输入,平方根立方根怎么用电脑计算机表示?
- Android实现第三方登录并获取到头像、名字