mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-07 18:17:19 +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); overload; override;
|
||||||
procedure LoadFromStream(AStream: TStream; ASize: Cardinal); overload; virtual;
|
procedure LoadFromStream(AStream: TStream; ASize: Cardinal); overload; virtual;
|
||||||
procedure LoadFromMimeStream(AStream: TStream; const AMimeType: string); override;
|
procedure LoadFromMimeStream(AStream: TStream; const AMimeType: string); override;
|
||||||
//todo LoadFromRawImage
|
procedure LoadFromRawImage(const AIMage: TRawImage; ADataOwner: Boolean);
|
||||||
procedure LoadFromIntfImage(IntfImage: TLazIntfImage);
|
procedure LoadFromIntfImage(IntfImage: TLazIntfImage);
|
||||||
procedure SaveToStream(AStream: TStream); override;
|
procedure SaveToStream(AStream: TStream); override;
|
||||||
procedure GetSupportedSourceMimeTypes(List: TStrings); override;
|
procedure GetSupportedSourceMimeTypes(List: TStrings); override;
|
||||||
|
|||||||
@ -563,6 +563,55 @@ begin
|
|||||||
inherited LoadFromMimeStream(AStream, AMimeType);
|
inherited LoadFromMimeStream(AStream, AMimeType);
|
||||||
end;
|
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 TRasterImage.SaveToStream(AStream: TStream);
|
||||||
procedure Error;
|
procedure Error;
|
||||||
begin
|
begin
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user