projects
/
glBitmap.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
65e2aac
)
* fixed Bug in Lazarus PNG/JPEG export: swapped red and blue values when saving RGB...
author
Bergmann89
<bergmann89@muo-game.de>
Sun, 24 Nov 2013 00:59:55 +0000
(
01:59
+0100)
committer
Bergmann89
<bergmann89@muo-game.de>
Sun, 24 Nov 2013 00:59:55 +0000
(
01:59
+0100)
glBitmap.pas
patch
|
blob
|
history
diff --git
a/glBitmap.pas
b/glBitmap.pas
index
04297fa
..
7c6e840
100644
(file)
--- a/
glBitmap.pas
+++ b/
glBitmap.pas
@@
-4920,7
+4920,7
@@
begin
rid.Width := Width;
rid.Height := Height;
rid.Width := Width;
rid.Height := Height;
- rid.Depth := CountSetBits(FormatDesc.R
ange.r or FormatDesc.Range.g or FormatDesc.Range.b or FormatDesc.Range.a
);
+ rid.Depth := CountSetBits(FormatDesc.R
edMask or FormatDesc.GreenMask or FormatDesc.BlueMask or FormatDesc.AlphaMask
);
rid.BitOrder := riboBitsInOrder;
rid.ByteOrder := riboLSBFirst;
rid.LineOrder := riloTopToBottom;
rid.BitOrder := riboBitsInOrder;
rid.ByteOrder := riboLSBFirst;
rid.LineOrder := riloTopToBottom;
@@
-5977,13
+5977,15
@@
procedure TglBitmap.SavePNG(const aStream: TStream);
var
png: TPortableNetworkGraphic;
intf: TLazIntfImage;
var
png: TPortableNetworkGraphic;
intf: TLazIntfImage;
+ raw: TRawImage;
begin
png := TPortableNetworkGraphic.Create;
intf := TLazIntfImage.Create(0, 0);
try
if not AssignToLazIntfImage(intf) then
raise EglBitmap.Create('unable to create LazIntfImage from glBitmap');
begin
png := TPortableNetworkGraphic.Create;
intf := TLazIntfImage.Create(0, 0);
try
if not AssignToLazIntfImage(intf) then
raise EglBitmap.Create('unable to create LazIntfImage from glBitmap');
- png.LoadFromIntfImage(intf);
+ intf.GetRawImage(raw);
+ png.LoadFromRawImage(raw, false);
png.SaveToStream(aStream);
finally
png.Free;
png.SaveToStream(aStream);
finally
png.Free;
@@
-6513,13
+6515,15
@@
procedure TglBitmap.SaveJPEG(const aStream: TStream);
var
jpeg: TJPEGImage;
intf: TLazIntfImage;
var
jpeg: TJPEGImage;
intf: TLazIntfImage;
+ raw: TRawImage;
begin
jpeg := TJPEGImage.Create;
intf := TLazIntfImage.Create(0, 0);
try
if not AssignToLazIntfImage(intf) then
raise EglBitmap.Create('unable to create LazIntfImage from glBitmap');
begin
jpeg := TJPEGImage.Create;
intf := TLazIntfImage.Create(0, 0);
try
if not AssignToLazIntfImage(intf) then
raise EglBitmap.Create('unable to create LazIntfImage from glBitmap');
- jpeg.LoadFromIntfImage(intf);
+ intf.GetRawImage(raw);
+ jpeg.LoadFromRawImage(raw, false);
jpeg.SaveToStream(aStream);
finally
intf.Free;
jpeg.SaveToStream(aStream);
finally
intf.Free;
@@
-8559,4
+8563,4
@@
finalization
FreeAndNil(InitOpenGLCS);
{$ENDIF}
FreeAndNil(InitOpenGLCS);
{$ENDIF}
-end.
+end.
\ No newline at end of file