Changeset 29 for trunk/Packages/FastGraphics
- Timestamp:
- Dec 22, 2016, 9:46:17 PM (8 years ago)
- Location:
- trunk/Packages/FastGraphics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Packages/FastGraphics/ColorFormats/UColorRGB8.pas
r28 r29 56 56 procedure PaintToBitmap(Bitmap: TBitmap; Rect: TRect); override; 57 57 procedure LoadFromCanvas(Canvas: TCanvas); override; 58 procedure LoadFromBitmap(Bitmap: TBitmap); override; 58 59 function GetDataSize: Integer; override; 59 60 constructor Create; override; … … 170 171 end; 171 172 173 procedure TBPixmapRGB8.LoadFromBitmap(Bitmap: TBitmap); 174 begin 175 Pixmap.LoadFromBitmap(Bitmap, Pixmap.ColorToRGB8); 176 end; 177 172 178 function TBPixmapRGB8.GetDataSize: Integer; 173 179 begin -
trunk/Packages/FastGraphics/UFGraphics.pas
r27 r29 45 45 procedure PaintToBitmap(Bitmap: TBitmap; Rect: TRect); virtual; 46 46 procedure LoadFromCanvas(Canvas: TCanvas); virtual; 47 procedure LoadFromBitmap(Bitmap: TBitmap); virtual; 47 48 function GetDataSize: Integer; virtual; 48 49 constructor Create; virtual; … … 174 175 procedure PaintToBitmap(Bitmap: TBitmap; Rect: TRect); overload; 175 176 procedure LoadFromCanvas(Canvas: TCanvas); 177 procedure LoadFromBitmap(Bitmap: TBitmap); 176 178 function GetDataSize: Integer; 177 179 constructor Create(AOwner: TComponent); override; … … 383 385 end; 384 386 387 procedure TBImage.LoadFromBitmap(Bitmap: TBitmap); 388 begin 389 end; 390 385 391 function TBImage.GetDataSize: Integer; 386 392 begin … … 495 501 begin 496 502 Backend.LoadFromCanvas(Canvas); 503 end; 504 505 procedure TFPixmap.LoadFromBitmap(Bitmap: TBitmap); 506 begin 507 Backend.LoadFromBitmap(Bitmap); 497 508 end; 498 509 -
trunk/Packages/FastGraphics/UGGraphics.pas
r27 r29 68 68 procedure PaintToBitmap(Bitmap: TBitmap; Rect: TRect; ColorConvertFunc: TGConvertColor); 69 69 procedure LoadFromCanvas(Canvas: TCanvas; ColorConvertFunc: TGConvertFromColor); overload; 70 procedure LoadFromBitmap(Bitmap: TBitmap; ColorConvertFunc: TGConvertFromColor); 70 71 procedure Fill(Color: TGColor); overload; 71 72 procedure Fill(Func: TGGetColor); overload; … … 224 225 end; 225 226 226 procedure TGPixmap<TGColor>.LoadFromCanvas(Canvas: TCanvas; ColorConvertFunc: TGConvertFromColor); overload;227 procedure TGPixmap<TGColor>.LoadFromCanvas(Canvas: TCanvas; ColorConvertFunc: TGConvertFromColor); 227 228 var 228 229 X, Y: Integer; … … 236 237 finally 237 238 Canvas.Unlock; 239 end; 240 end; 241 242 procedure TGPixmap<TGColor>.LoadFromBitmap(Bitmap: TBitmap; ColorConvertFunc: TGConvertFromColor); 243 var 244 X, Y: Integer; 245 PixelPtr: PInteger; 246 PixelPtrMax: PInteger; 247 PixelRowPtr: PInteger; 248 P: TPixelFormat; 249 RawImage: TRawImage; 250 BytePerPixel: Integer; 251 begin 252 try 253 Bitmap.BeginUpdate(False); 254 RawImage := Bitmap.RawImage; 255 PixelRowPtr := PInteger(RawImage.Data); 256 BytePerPixel := RawImage.Description.BitsPerPixel div 8; 257 PixelPtrMax := PixelRowPtr + RawImage.Description.Width * RawImage.Description.Height * BytePerPixel; 258 for Y := 0 to FSize.Y - 1 do begin 259 PixelPtr := PixelRowPtr; 260 for X := 0 to FSize.X - 1 do begin 261 if (X >= 0) and (X < FSize.X) and (Y >= 0) and (Y < FSize.Y) and (PixelPtr < PixelPtrMax) then 262 Pixels[X, Y] := ColorConvertFunc(PixelPtr^); 263 Inc(PByte(PixelPtr), BytePerPixel); 264 end; 265 Inc(PByte(PixelRowPtr), RawImage.Description.BytesPerLine); 266 end; 267 finally 268 Bitmap.EndUpdate(False); 238 269 end; 239 270 end;
Note:
See TracChangeset
for help on using the changeset viewer.