Quellcode durchsuchen

* load JPEG direct over TLazIntfImage and TReadJPEG instead of TJPEGImage

master
Bergmann89 vor 10 Jahren
Ursprung
Commit
95537170b0
1 geänderte Dateien mit 10 neuen und 16 gelöschten Zeilen
  1. +10
    -16
      glBitmap.pas

+ 10
- 16
glBitmap.pas Datei anzeigen

@@ -1230,7 +1230,8 @@ implementation

uses
Math, syncobjs, typinfo
{$IFDEF GLB_DELPHI}, Types{$ENDIF};
{$IFDEF GLB_DELPHI}, Types{$ENDIF}
{$IF DEFINED(GLB_SUPPORT_JPEG_READ) AND DEFINED(GLB_LAZ_JPEG)}, FPReadJPEG{$IFEND};

type
{$IFNDEF fpc}
@@ -6348,6 +6349,7 @@ const
var
jpeg: TJPEGImage;
intf: TLazIntfImage;
reader: TFPReaderJPEG;
StreamPos: Int64;
magic: String[MAGIC_LEN];
begin
@@ -6362,28 +6364,20 @@ begin
exit;
end;

jpeg := TJPEGImage.Create;
reader := TFPReaderJPEG.Create;
intf := TLazIntfImage.Create(0, 0);
try try
jpeg.LoadFromStream(aStream);
intf := TLazIntfImage.Create(0, 0);
try try
intf.LoadFromBitmap(jpeg.BitmapHandle, jpeg.MaskHandle);
AssignFromLazIntfImage(intf);
except
result := false;
aStream.Position := StreamPos;
exit;
end;
finally
intf.Free;
end;
intf.DataDescription := GetDescriptionFromDevice(0, 0, 0);
reader.ImageRead(aStream, intf);
AssignFromLazIntfImage(intf);
except
result := false;
aStream.Position := StreamPos;
exit;
end;
finally
jpeg.Free;
reader.Free;
intf.Free;
end;
end;



Laden…
Abbrechen
Speichern