Re:Saving a TImage to a Textfile
Quote
"Tfrey" <tf...@del.ourempire.com> wrote in message news:3bb34781_2@dnews...
> Is there a way to save a TImage to file as text?
I use a function for converting a binary stream into a string, and a
procedure for converting the string back to a binary stream.
Here is what I have done and have used without any problems:
{---------------------------------------------------------------------------
-------------}
Function sStreamToHexString(aStream: TStream): String;
Var
lCurrentLocation : LongInt;
lpszStr : PChar;
lNumOfCharacters : LongInt;
TmpStream : TMemoryStream;
Begin
lCurrentLocation:= aStream.Seek(0, soFromCurrent);
aStream.Seek(0, soFromBeginning);
TmpStream:= TMemoryStream.Create;
TmpStream.LoadFromStream(aStream);
TmpStream.Seek(0, soFromBeginning);
lNumOfCharacters:= TmpStream.Size * 2;
lpszStr:= StrAlloc(lNumOfCharacters + 16);
FillChar(lpszStr^, StrBufSize(lpszStr) - 1, #0);
BinToHex(TmpStream.Memory, lpszStr, TmpStream.Size);
Result:= StrPas(lpszStr);
StrDispose(lpszStr);
TmpStream.Free;
aStream.Seek(lCurrentLocation, soFromBeginning);
End;
{---------------------------------------------------------------------------
-------------}
Procedure HexStringToStream(aHexString: String; aStream: TStream);
Var
lNumOfCharacters : LongInt;
TmpStream : TMemoryStream;
Begin
If(Length(aHexString) > 0) Then
Begin
lNumOfCharacters:= Length(aHexString) Div 2;
TmpStream:= TMemoryStream.Create;
TmpStream.SetSize(lNumOfCharacters);
TmpStream.Seek(0, soFromBeginning);
HexToBin(PChar(aHexString), TmpStream.Memory, (lNumOfCharacters * 2));
TmpStream.Seek(0, soFromBeginning);
TmpStream.SaveToStream(aStream);
aStream.Seek(0, soFromBeginning);
TmpStream.Free;
End;
End;
I hope this helps,
Farshad R. Vossoughi