فهرست منبع

Merged revisions 11556 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

........
r11556 | michael | 2008-08-12 15:07:48 +0200 (Tue, 12 Aug 2008) | 1 line

* Patch from Martin Schreiber to fix grayscaled JPEG images
........

git-svn-id: branches/fixes_2_2@11557 -

michael 17 سال پیش
والد
کامیت
3298d1145d
1فایلهای تغییر یافته به همراه17 افزوده شده و 5 حذف شده
  1. 17 5
      packages/fcl-image/src/fpreadjpeg.pas

+ 17 - 5
packages/fcl-image/src/fpreadjpeg.pas

@@ -223,6 +223,7 @@ var
     LinesRead: Cardinal;
     x: Integer;
     y: Integer;
+    c: word;
   begin
     InitReadingPixels;
 
@@ -253,11 +254,22 @@ var
           Img.Colors[x,y]:=CorrectCMYK(Color);
         end
         else
-        for x:=0 to FInfo.output_width-1 do begin
-          Color.Red:=SampRow^[x*3+0] shl 8;
-          Color.Green:=SampRow^[x*3+1] shl 8;
-          Color.Blue:=SampRow^[x*3+2] shl 8;
-          Img.Colors[x,y]:=Color;
+        if fgrayscale then begin
+         for x:=0 to FInfo.output_width-1 do begin
+           c:= SampRow^[x] shl 8;
+           Color.Red:=c;
+           Color.Green:=c;
+           Color.Blue:=c;
+           Img.Colors[x,y]:=Color;
+         end;
+        end
+        else begin
+         for x:=0 to FInfo.output_width-1 do begin
+           Color.Red:=SampRow^[x*3+0] shl 8;
+           Color.Green:=SampRow^[x*3+1] shl 8;
+           Color.Blue:=SampRow^[x*3+2] shl 8;
+           Img.Colors[x,y]:=Color;
+         end;
         end;
         inc(y);
       end;