将图片以字符串方式保存

将图片转换成字符

delphi的*.dfm文件

mht的文件

//------------------------------------------------------------------------------

//jpg转换为 txt字符串

//JpegToText(‘C:\1.jpg‘,
‘C:\1.txt‘);
function JpegToText(jpgFileName: string; TxtFileName: string): string;
var
  FileStream: TFileStream;
  StringStream: TStringStream;
  FSize: integer;
  FileData: string;

i: integer;
  DataStr: string;
begin
  try
    FileStream := TFileStream.Create(jpgFileName, fmOpenRead);

StringStream := TStringStream.Create(EmptyStr);

FSize := FileStream.Size;

StringStream.CopyFrom(FileStream, FSize);
    FileData := StringStream.DataString;

DataStr := EmptyStr;

for i := 1 to Length(FileData) do

begin

DataStr := DataStr + InttoHex(Ord(FileData[i]), 2);

end;
    Result := DataStr;
  finally
    freeandnil(FileStream);

freeandnil(StringStream);

end;
end;

//------------------------------------------------------------------------------

//TextToJpeg(‘C:\1.txt‘,
‘C:\2.jpg‘);

function TextToJpeg(TxtFileName: string; JpegFileName: string): TPicture;
var
  buf: array of Byte;
  DataLength: Integer;

i: Integer;
  DataStr: string;

ByteFile: file of byte;
  tmpFileName: string;
begin

with TStringList.Create do

begin

LoadFromFile(TxtFileName);

DataStr := Text;

Free;

end;
  DataLength := Length(DataStr) div 2 - 1;

SetLength(buf, DataLength);
  for i := 1 to DataLength do

begin

buf[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

begin

write(ByteFile, buf[i]);
  end;

CloseFile(ByteFile);

Result:=TPicture.Create;
  Result.LoadFromFile(tmpFileName);  //慢

DeleteFile(tmpFileName);
end;

//jpg转换为 txt字符串 并保存为txt

procedure SaveJpgToTextFile(jpgFileName: string;
TxtFileName: string);

begin

with TStringList.Create do

begin

Text :=
JpegToText(jpgFileName,TxtFileName);

SaveToFile(TxtFileName);

Free;

end;

end;

procedure SavePictureToFile(pitcture:TPicture;FileName:string);
var
    pic:TPicture;
begin

pic:=TPicture.Create;
    pic:=pitcture;
    pic.SaveToFile(FileName);
  //  pic.Free;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  SavePictureToFile(Image1.Picture,‘C:\3.jpg‘);
end;

来自为知笔记(Wiz)

将图片以字符串方式保存

时间: 2024-12-17 09:56:09

将图片以字符串方式保存的相关文章

java图片以字符串的形式传输

最近在做一个中间件,用到了图片的传输. 原理:将图片转换为字节流,再将字节流用base64编码,将编码后的字符串封装到Json串中传输: 代码: package com.inlz; import java.io.FileInputStream; import java.io.IOException; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * Description:用此类将图片转换为字符串,以便将图片封

用GCD的方式,加载网络图片(主线程加载图片+类扩展方式)

用GCD的方式,加载网络图片(主线程加载图片+类扩展方式) 用两种方法来实现网络加载图片 方法1:实现的效果:先加载背景色灰色,两秒后加载图片 - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor=[UIColor grayColor]; //刷新UI(在主线程中刷新UI!!!) --- 一般方法 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PR

微信端网页中图片的展示方式

一.微信端网页中图片的展示方式 微信端网页中图片有两种展示方式:平铺与图集.平铺的时候文档内的所有图片全部展开,点击图片则放大.图集的时候只展示一张图片,点击图片的时候以翻页的方式展示一组图片.实现原理对于如下一个图片标签,data-gid用于存放组标识,同一组的data-gid相同.data-index用于存放组中图片的展示顺序,不能相同.onclick中根据data-src处理图片展示.对于图集就只显示一张其他的img设置为隐藏,src与第一个图片一样,或者为空,这样可以减少网页的加载量,提

iOS 正确选择图片加载方式

正确选择图片加载方式能够对内存优化起到很大的作用,常见的图片加载方式有下面三种: //方法1 UIImage *imag1 = [UIImage imageNamed:@"image.png"]; //方法2 UIImage *image2 = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.png" ofType:nil]]; //方法3 NSData

002-UIImageView和UIButton对比 UIImageView的帧动画 格式符补充 加载图片两种方式 添加删除SUBVIEW

一>.UIImageView和UIButton对比 显示图片 1> UIImageView只是一种图片(图片默认会填充整个UIImageView)  image\setImage: 2> UIButton能显示2种图片 * 背景 (背景会填充整个UIButton)  setBackgroundImage:forState: * 前置(覆盖在背景上面的图片,按照之前的尺寸显示)  setImage:forState: * 还能显示文字 点击事件 1> UIImageView默认是不能

iPhone/iOS图片相关(读取、保存、绘制、其它相关)

http://blog.csdn.net/jerryvon/article/details/7526147 20:50:42 一.读取图片 1.从资源(resource)读取 [cpp] view plaincopyprint? UIImage* image=[UIImage imageNamed:@"1.jpg"]; 2.从网络读取 [cpp] view plaincopyprint? NSURL *url=[NSURL URLWithString:@"http://www

关于UISegmentedControl无法直接设置图片的解决方式

出现此种情况是由于,uiSegmentedControl的tintColor属性覆盖图片,如果设为透明色将直接无图显示: 解决办法是叫美工帮忙设计一张图片,图片的背景色设置为透明的,用uiSegmentedControl的tintColor作为图片的背景色,如此,视觉上就是加图的效果了. 当选中时,在触发的方法里在改填充色就可以了 关于UISegmentedControl无法直接设置图片的解决方式

node-webkit中保存文件图片时如何指定保存类型

node-webkit中保存文件图片时如何指定保存类型,nw中可以用html的属性donwload属性来下载,最简单但它弹出的下载框可以重命名时把后缀去掉,用户不小心会把文件或图片后缀去掉,导致打不开文件.另外可以用input 的accept属性打开一个<input style="display:none;" id="saveImg" type="file" nwsaveas="imge.png"  accept=&qu

css sprite---css精灵网页图片应用处理方式分析

CSSSprites,在前端图片处理中经常用到的一种高效方法,下面参考百度百科的总结,非常到位,学习一下吧! CSSSprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了.对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需顾忌这个问题. 1.CSS Sprites简介 加速的关键,不是降低质量,而是减少个数