刺激战场
  • 1488阅读
  • 3回复

Image类--3-克隆技术 [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-02-16



[cpp] view plain copy

  1. inline Bitmap*  
  2. Bitmap::Clone(  
  3.     IN REAL x,  
  4.     IN REAL y,  
  5.     IN REAL width,  
  6.     IN REAL height,  
  7.     IN PixelFormat format  
  8.     )  
  9. {  

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  此枚举的最大值。  

示例代码:


[cpp] view plain copy

  1. Bitmap orgpic(_T("D:\\1.PNG")) ;  
  2. Graphics g(GetDC()->GetSafeHdc()) ;  
  3.   
  4. Bitmap *despic = orgpic.Clone(0, 0, orgpic.GetWidth(), orgpic.GetHeight()/2, PixelFormatDontCare) ;  
  5. g.DrawImage(despic, 0, 0) ;  
  6. delete despic ;  





创建此 Image 的一个精确副本, 图片不会失真.

具体参看http://msdn.microsoft.com/zh-cn/library/system.drawing.imaging.pixelformat.aspx#Y101
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线im86165507

只看该作者 沙发  发表于: 2016-02-16
离线im86165507

只看该作者 板凳  发表于: 2016-02-16
离线v2680267313

只看该作者 地板  发表于: 2016-04-30
用户被禁言,该主题自动屏蔽!
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个