mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-05 23:17:10 +01:00
* Added loading form rawimage
git-svn-id: trunk@18328 -
This commit is contained in:
parent
9aa3d3facd
commit
ec7a647154
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user