RAD Studio VCL Reference
|
Indicates the bit format of the bitmap image, specifying how the image is displayed and how the pixels of the bitmap image are stored in memory.
property PixelFormat: TPixelFormat;
__property TPixelFormat PixelFormat;
Use PixelFormat to change a TBitmap's internal image to a particular memory format and color depth, or to find out what memory format and color depth a TBitmap is using.
For example, PixelFormat can be used to set the pixel format of the bitmap image to 8-bit for video drivers that cannot display the native format of a bitmap image.
C++ Examples:
/* This example shows how to draw directly to a Bitmap. It loads a bitmap from a file and then copies it to another bitmap twice it's size. Then the two bitmaps are displayed on the form canvas. */ void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *Bitmap = new Graphics::TBitmap(); Graphics::TBitmap *BigBitmap = new Graphics::TBitmap(); TRGBTriple *ptr, *bigPtr; // use a (byte *) for pf8bit color TPixelFormat pixForm, bigpixForm; try { Bitmap->LoadFromFile("../littlefac.bmp"); pixForm = Bitmap->PixelFormat; bigpixForm = BigBitmap->PixelFormat; Bitmap->PixelFormat = pf24bit; BigBitmap->PixelFormat = pf24bit; BigBitmap->Height = Bitmap->Height * 2; BigBitmap->Width = Bitmap->Width * 2; for (int y = 0; y < Bitmap->Height; y++) { ptr = (TRGBTriple *)Bitmap->ScanLine[y]; for (int x = 0; x < Bitmap->Width; x++) { int bx = x * 2; int by = y * 2; bigPtr = (TRGBTriple *)BigBitmap->ScanLine[by]; bigPtr[bx] = ptr[x]; bigPtr[bx + 1] = ptr[x]; bigPtr = (TRGBTriple *)BigBitmap->ScanLine[by + 1]; bigPtr[bx] = ptr[x]; bigPtr[bx + 1] = ptr[x]; } } Canvas->Draw(0, 0, Bitmap); Canvas->Draw(200, 200, BigBitmap); } catch (...) { ShowMessage("Could not load or alter bitmap"); } delete Bitmap; delete BigBitmap; }
Delphi Examples:
{ This example shows how to draw directly to a Bitmap. It loads a bitmap from a file and then copies it to another bitmap twice it's size. Then the two bitmaps are displayed on the form canvas. } procedure TForm1.Button1Click(Sender: TObject); type TRGBTripleArray = ARRAY[Word] of TRGBTriple; pRGBTripleArray = ^TRGBTripleArray; // use a PByteArray for pf8bit color var x,y : Integer; bx, by : Integer; BitMap, BigBitMap : TBitMap; P, bigP : pRGBTripleArray; pixForm, bigpixForm : TPixelFormat; begin BitMap := TBitMap.create; BigBitMap := TBitMap.create; try BitMap.LoadFromFile('littlefac.bmp'); pixForm := BitMap.PixelFormat; bigpixForm := BigBitMap.PixelFormat; BitMap.PixelFormat := pf24bit; BigBitMap.PixelFormat := pf24bit; BigBitMap.Height := BitMap.Height * 2; BigBitMap.Width := BitMap.Width * 2; for y := 0 to BitMap.Height - 1 do begin P := BitMap.ScanLine[y]; for x := 0 to BitMap.Width - 1 do begin bx := x * 2; by := y * 2; bigP := BigBitMap.ScanLine[by]; bigP[bx] := P[x]; bigP[bx + 1] := P[x]; bigP := BigBitMap.ScanLine[by + 1]; bigP[bx] := P[x]; bigP[bx + 1] := P[x]; end; end; Canvas.Draw(0, 0, BitMap); Canvas.Draw(200, 200, BigBitMap); finally BitMap.Free; BigBitMap.Free; end; end;
Copyright(C) 2008 CodeGear(TM). All Rights Reserved.
|
What do you think about this topic? Send feedback!
|