Image Delphi:从图像创建字符串并添加到备忘录

Image Delphi:从图像创建字符串并添加到备忘录,image,delphi,stream,Image,Delphi,Stream,我有一张TImage组件中的图片。我需要将该图像转换为字符串,并将其放置在TMemo组件中。如何?您的代码可能是这样的 implementation uses EncdDecd; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var ss :TMemoryStream; begin ss :=TMemoryStream.Create(); try Image1.Picture.Graphi

我有一张TImage组件中的图片。我需要将该图像转换为字符串,并将其放置在TMemo组件中。如何?

您的代码可能是这样的

implementation
uses
  EncdDecd;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  ss    :TMemoryStream;
begin
  ss   :=TMemoryStream.Create();
  try
    Image1.Picture.Graphic.SaveToStream(ss);
    Memo1.Text  :=  EncodeBase64(ss.Memory, ss.Size);
  finally
    ss.Free;
  end;
end;

我想你是指
字符串
而不是
?图片是二进制数据(并且
TImage
可以保存许多不同二进制格式的图片),那么您希望在备忘录中显示什么呢?请提供有关您试图实现的目标的更多信息。我将进一步解释,让我们以下图为例:如果我们使用Specionar浏览器中的元素,将看到它是一个有8万个字符的字符串,因此结束(..2s/w/yjpbgig5p3qaaabjru5erkjggg==)我需要的是提取代表图像的所有文本并放置在备注字段中。查找Base64编码器注意
EncodeBase64()
强制每75个字符换行一次。如果您不想这样做,则必须手动将其去除,或者使用不产生换行符的其他编码器,如Indy的
TidEncoderMie
类,例如:
Memo1.Text:=TidEncoderMie.EncoderStream(ss)
tidecodermime.EncodeStream(ss,Memo1.line)