* Added loading form rawimage

git-svn-id: trunk@18328 -
This commit is contained in:
marc 2009-01-18 15:47:42 +00:00
parent 9aa3d3facd
commit ec7a647154
2 changed files with 50 additions and 1 deletions

View File

@ -1271,7 +1271,7 @@ type
procedure LoadFromStream(AStream: TStream); overload; override;
procedure LoadFromStream(AStream: TStream; ASize: Cardinal); overload; virtual;
procedure LoadFromMimeStream(AStream: TStream; const AMimeType: string); override;
//todo LoadFromRawImage
procedure LoadFromRawImage(const AIMage: TRawImage; ADataOwner: Boolean);
procedure LoadFromIntfImage(IntfImage: TLazIntfImage);
procedure SaveToStream(AStream: TStream); override;
procedure GetSupportedSourceMimeTypes(List: TStrings); override;

View File

@ -563,6 +563,55 @@ begin
inherited LoadFromMimeStream(AStream, AMimeType);
end;
procedure TRasterImage.LoadFromRawImage(const AImage: TRawImage; ADataOwner: Boolean);
var
img: PRawImage;
begin
BeginUpdate;
try
Clear;
img := GetRawImagePtr;
img^.Description := AImage.Description;
if ADataOwner
then begin
img^.DataSize := AImage.DataSize;
img^.Data := AImage.Data;
img^.MaskSize := AImage.MaskSize;
img^.Mask := AImage.Mask;
img^.PaletteSize := AImage.PaletteSize;
img^.Palette := AImage.Palette;
end
else begin
// copy needed
img^.DataSize := AImage.DataSize;
if img^.DataSize > 0
then begin
GetMem(img^.Data, img^.DataSize);
Move(AImage.Data^, img^.Data^, img^.DataSize);
end
else img^.Data := nil;
img^.MaskSize := AImage.MaskSize;
if img^.MaskSize > 0
then begin
GetMem(img^.Mask, img^.MaskSize);
Move(AImage.Mask^, img^.Mask^, img^.MaskSize);
end
else img^.Mask := nil;
img^.PaletteSize := AImage.PaletteSize;
if img^.PaletteSize > 0
then begin
GetMem(img^.Palette, img^.PaletteSize);
Move(AImage.Palette^, img^.Palette^, img^.PaletteSize);
end
else img^.Palette := nil;
end;
finally
EndUpdate;
end;
end;
procedure TRasterImage.SaveToStream(AStream: TStream);
procedure Error;
begin