inline Bitmap* Bitmap::Clone( IN REAL x, IN REAL y, IN REAL width, IN REAL height, IN PixelFormat format ) {PixelFormatIndexed 该像素数据包含颜色索引值,这意味着这些值是系统颜色表中颜色的索引,而不是单个颜色值。
PixelFormatGdi 像素数据包含 GDI 颜色。
PixelFormatAlpha 像素数据包含没有进行过自左乘的 alpha 值。
PixelFormatPAlpha 像素格式包含自左乘的 alpha 值。
PixelFormatExtended 保留。
PixelFormatCanonical 默认像素格式,每像素 32 位。 此格式指定 24 位颜色深度和一个 8 位 alpha 通道。
PixelFormatUndefined 未定义像素格式。
PixelFormatDontCare 没有指定像素格式。
PixelFormat1bppIndexed 指定像素格式为每像素 1 位,并指定它使用索引颜色。 因此颜色表中有两种颜色。
PixelFormat4bppIndexed 指定格式为每像素 4 位而且已创建索引。
PixelFormat8bppIndexed 指定格式为每像素 8 位而且已创建索引。 因此颜色表中有 256 种颜色。
PixelFormat16bppGrayScale 像素格式为每像素 16 位。 该颜色信息指定 65536 种灰色调。
PixelFormat16bppRgb555 指定格式为每像素 16 位;红色、绿色和蓝色分量各使用 5 位。 剩余的 1 位未使用。
Pixel Format16bppRgb565 指定格式为每像素 16 位;红色分量使用 5 位,绿色分量使用 6 位,蓝色分量使用 5 位。
PixelFormat16bppArgb1555 像素格式为每像素 16 位。 该颜色信息指定 32,768 种色调,其中 5 位为红色,5 位为绿色,5 位为蓝色,1 位为 alpha。
PixelFormat24bppRgb 指定格式为每像素 24 位;红色、绿色和蓝色分量各使用 8 位。
Pixel Format32bppRgb 指定格式为每像素 32 位;红色、绿色和蓝色分量各使用 8 位。 剩余的 8 位未使用。
PixeltFormat32bppArgb 指定格式为每像素 32 位;alpha、红色、绿色和蓝色分量各使用 8 位。
PixeltFormat32bppPArgb 指定格式为每像素 32 位;alpha、红色、绿色和蓝色分量各使用 8 位。 根据 alpha 分量,对红色、绿色和蓝色分量进行自左乘。
Pixel Format48bppRgb 指定格式为每像素 48 位;红色、绿色和蓝色分量各使用 16 位。
PixeltFormat64bppArgb 指定格式为每像素 64 位;alpha、红色、绿色和蓝色分量各使用 16 位。
PixelFormat64bppPArgb 指定格式为每像素 64 位;alpha、红色、绿色和蓝色分量各使用 16 位。 根据 alpha 分量,对红色、绿色和蓝色分量进行自左乘。
Max 此枚举的最大值。
示例代码:
Bitmap orgpic(_T("D:\\1.PNG")) ; Graphics g(GetDC()->GetSafeHdc()) ; Bitmap *despic = orgpic.Clone(0, 0, orgpic.GetWidth(), orgpic.GetHeight()/2, PixelFormatDontCare) ; g.DrawImage(despic, 0, 0) ; delete despic ;
创建此 Image 的一个精确副本, 图片不会失真.
具体参看http://msdn.microsoft.com/zh-cn/library/system.drawing.imaging.pixelformat.aspx#Y101