Delphi GDI+ 学习记录(28): 图像颜色的数据格式

//指定位图颜色var
 g,gbit: TGPGraphics;
 bit1,bit2: TGPBitmap;
 sb: TGPSolidBrush;
begin
 //Self.Color := clWhite;
 g := TGPGraphics.Create(Canvas.Handle);
 sb := TGPSolidBrush.Create(MakeColor(255,0,0)); {画刷为红色}
 bit1 := TGPBitmap.Create(200, 32, PixelFormat32bppARGB);  {指定为 32 位颜色}
 bit2 := TGPBitmap.Create(200, 32, PixelFormat1bppIndexed); {只有两种颜色}
 gbit := TGPGraphics.Create(bit1);
 gbit.FillRectangle(sb, 0, 0, 200, 32);
 g.DrawImage(bit1, 11, 11, bit1.GetWidth, bit1.GetHeight); {画出来是红色}
 gbit := TGPGraphics.Create(bit2);
 gbit.FillRectangle(sb, 0, 0, 200, 32);
 g.DrawImage(bit2, 11, 100, bit2.GetWidth, bit2.GetHeight); {画出来是黑色, 它只有黑白两色}
 sb.Free;
 bit1.Free;
 bit2.Free;
 gbit.Free;
 g.Free;
end;

PixelFormat: (指定图像中每个像素的颜色数据的格式)

Delphi 微软 说明
PixelAlpha Alpha 像素数据包含没有进行过自左乘的 alpha 值。
PixelCanonical Canonical 默认像素格式,每像素 32 位。此格式指定 24 位颜色深度和一个 8 位 alpha 通道。
PixelDontCare DontCare 没有指定像素格式。
PixelExtended Extended 保留。
PixelFormat16bppArgb1555 Format16bppArgb1555 像素格式为每像素 16 位。该颜色信息指定 32,768 种色调,其中 5 位为红色,5 位为绿色,5 位为蓝色,1 位为 alpha。
PixelFormat16bppGrayScale Format16bppGrayScale 像素格式为每像素 16 位。该颜色信息指定 65536 种灰色调。
PixelFormat16bppRgb555 Format16bppRgb555 指定格式为每像素 16 位;红色、绿色和蓝色分量各使用 5 位。剩余的 1 位未使用。
PixelFormat16bppRgb565 Format16bppRgb565 指定格式为每像素 16 位;红色分量使用 5 位,绿色分量使用 6 位,蓝色分量使用 5 位。
PixelFormat1bppIndexed Format1bppIndexed 指定像素格式为每像素 1 位,并指定它使用索引颜色。因此颜色表中有两种颜色。
PixelFormat24bppRgb Format24bppRgb 指定格式为每像素 24 位;红色、绿色和蓝色分量各使用 8 位。
PixelFormat32bppArgb Format32bppArgb 指定格式为每像素 32 位;alpha、红色、绿色和蓝色分量各使用 8 位。
PixelFormat32bppPArgb Format32bppPArgb 指定格式为每像素 32 位;alpha、红色、绿色和蓝色分量各使用 8 位。根据 alpha 分量,对红色、绿色和蓝色分量进行自左乘。
PixelFormat32bppRgb Format32bppRgb 指定格式为每像素 32 位;红色、绿色和蓝色分量各使用 8 位。剩余的 8 位未使用。
PixelFormat48bppRgb Format48bppRgb 指定格式为每像素 48 位;红色、绿色和蓝色分量各使用 16 位。
PixelFormat4bppIndexed Format4bppIndexed 指定格式为每像素 4 位而且已创建索引。
PixelFormat64bppArgb Format64bppArgb 指定格式为每像素 64 位;alpha、红色、绿色和蓝色分量各使用 16 位。
PixelFormat64bppPArgb Format64bppPArgb 指定格式为每像素 64 位;alpha、红色、绿色和蓝色分量各使用 16 位。根据 alpha 分量,对红色、绿色和蓝色分量进行自左乘。
PixelFormat8bppIndexed Format8bppIndexed 指定格式为每像素 8 位而且已创建索引。因此颜色表中有 256 种颜色。
PixelGdi Gdi 像素数据包含 GDI 颜色。
PixelIndexed Indexed 该像素数据包含颜色索引值,这意味着这些值是系统颜色表中颜色的索引,而不是单个颜色值。
PixelMax Max 此枚举的最大值。
PixelPAlpha PAlpha 像素格式包含自左乘的 alpha 值。
PixelUndefined Undefined 未定义像素格式。
时间: 2025-01-20 12:48:32

Delphi GDI+ 学习记录(28): 图像颜色的数据格式的相关文章

Delphi GDI+ 学习记录(31): 图像颜色变换(TGPImageAttributes)

//正常显示图片, 没有变换uses GDIPAPI, GDIPOBJ; procedure TForm1.FormPaint(Sender: TObject); var g: TGPGraphics; img: TGPImage; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\test.png'); {测试文件要存在} g.DrawImage(img, 0, 0, img.GetWid

Delphi GDI+学习记录(21): 颜色

//颜色透明度var g: TGPGraphics; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(128,255,0,0)); {128表示半透明} g.FillRectangle(sb,10,10,100,100); sb.Free; g.Free; end; //使用 GDI+ 的颜色类型var g: TGPGraphics; sb:

Delphi GDI+ 学习记录(25): 变换

//比例变化 var g: TGPGraphics; p: TGPPen; rect: TGPRect; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,255,0,0),0); rect := MakeRect(10,10,100,100); g.DrawRectangle(p, rect); {原始} g.ScaleTransform(2, 0.5); {横向放大.纵向缩小} p.S

Delphi GDI+学习记录(19): 路径

//绘制与填充路径var g: TGPGraphics; path: TGPGraphicsPath; p: TGPPen; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(128,255,0,0),4); sb := TGPSolidBrush.Create(MakeColor(128,255,255,0)); path := TGPGraphicsPat

Delphi GDI+学习记录(11): 路径渐变画刷

//路径渐变画刷 var g: TGPGraphics; path: TGPGraphicsPath; pb: TGPPathGradientBrush; {声明渐变画刷} num: Integer; const colors: array[0..0] of TGPColor = (aclAqua); begin g := TGPGraphics.Create(Canvas.Handle); path := TGPGraphicsPath.Create; path.AddEllipse(0,0,

Delphi GDI+学习记录(10): 线性渐变画刷

//线性渐变画刷var g: TGPGraphics; lb: TGPLinearGradientBrush; rect: TGPRect; begin g := TGPGraphics.Create(Canvas.Handle); rect := MakeRect(11,11,222,111); lb := TGPLinearGradientBrush.Create(rect, aclBlue, aclGreen, LinearGradientModeHorizontal); g.FillEl

Delphi GDI+学习记录(9): 纹理画刷

//纹理画刷 var g: TGPGraphics; img: TGPImage; tb: TGPTextureBrush; begin g := TGPGraphics.Create(Canvas.Handle); img := TGPImage.Create('c:\temp\small.jpg'); tb := TGPTextureBrush.Create(img); g.FillEllipse(tb, 0, 0, Self.ClientWidth, Self.ClientHeight);

Delphi GDI+学习记录(8): 阴影画刷

//阴影画刷 var g: TGPGraphics; hb: TGPHatchBrush; begin g := TGPGraphics.Create(Canvas.Handle); hb := TGPHatchBrush.Create(HatchStyleHorizontal, aclRed, aclYellow); {参数1是阴影样式; 参数2是前景色; 参数3是背景色, 参数3可选, 默认黑色} g.FillEllipse(hb, 11, 11, 222, 111); hb.Free; g

Delphi GDI+学习记录(7): 实心画刷

//实心画刷 var g: TGPGraphics; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(aclGreen); {参数是颜色} g.FillEllipse(sb, 11, 11, 222, 111); sb.Free; g.Free; end; //设置画刷颜色 var g: TGPGraphics; sb: TGPSolidBrush; begin