Wenn du ein Bmp hast könntest du damit Speichern
Delphi-Quellcode:
procedure S4Bmp_ToStream( bmpSrc : TBitmap;
strmDst : TStream;
sExt : String;
iQuality : Integer);
var
Surf : TBitmapSurface;
vBitMapData : TBitmapData;
saveParams : TBitmapCodecSaveParams;
begin
Surf := TBitmapSurface.Create;
// lock and get the bitmap pixels
if bmpSrc.Map(TMapAccess.Read, vBitMapData) then
begin
try
Surf.Assign(bmpSrc);
saveparams.Quality := iQuality; // 85;
if not TBitmapCodecManager.SaveToStream(strmDst, Surf, sExt, @saveParams) then //'.jpg') then
raise EBitmapSavingFailed.Create(
'Error saving Bitmap to ' + sExt);
// raise EBitmapSavingFailed.Create(SBitmapSavingFailed);
finally
Surf.Free;
end;
bmpSrc.Unmap(vBitMapData); // unlock the bitmap
end;
end;
// Aufruf mit Quality in %
S4Bmp_ToStream( bmpSrc, FileStream_als_Beispiel, '.png', 85);
Info: Den äussere Scope mit Bitmap.Map()... könnte man wohl auch weglassen,
ich hatte das noch von einem Test mit drin, aber ich denke das schadet auch nicht wenn es drin bleibt.
Eigentlich sollte das Canvas-Bitmap die Transparenz richtig drinhaben, müsstest du mal Testen.
Rollo