zoukankan      html  css  js  c++  java
  • 【VS开发】解决位图缩放失真

    当用以下函数加载一张位图时,当窗口发生重绘更改大小时,位图将失真:

    CBitmap bitmap;
      bitmap.LoadBitmap(IDB_BITMAP2);

      BITMAP bmp;
      bitmap.GetBitmap(&bmp);

      CDC dcCompatible;
      dcCompatible.CreateCompatibleDC(pDC);
      dcCompatible.SelectObject(&bitmap);

      CRect rect;
      GetClientRect(&rect);
      pDC->SetStretchBltMode(COLORONCOLOR); //设置在指定设备内容中的伸展模式。解决失真问题。
      pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);

     

    SetStretchBltMode函数设置在指定设备内容中的伸展模式。

    int SetStretchBltMode(

     HDC hdc,           // DC的HANDLE

     int iStretchMode   // 位图伸展模式

    );

    Hdc:输入,设备内容的HANDLE

    iStretchMode:输入,指定的伸展模式,参数可以下面值之一:

    描述

    BLACKONWHITE

    执行一个布尔AND操作在要删除的存在的图素上。如果位图是一个单色位图,这个模式保留黑色的像素为白色的像素。

    COLORONCOLOR

    删除像素,这个模式删除所有待删除的像素行,而不保留他们的信息。

    HALFTONE

    从源矩形映射像素到指定的目标矩形。目标和源矩形的平均颜色是相似的。

    在设置HALFTON伸展模式之后,应用程序必须调用SetBrushOrgEx函数来设置刷源。如果该调用失败了,刷子将不对齐。

    This option is not supported on Windows 95/98/Me.

    STRETCH_ANDSCANS

    Same as BLACKONWHITE.

    STRETCH_DELETESCANS

    Same as COLORONCOLOR.

    STRETCH_HALFTONE

    Same as HALFTONE.

    STRETCH_ORSCANS

    Same as WHITEONBLACK.

    WHITEONBLACK

    执行一个布尔或操作,使用待删除的存在的像素的颜色。如果位图是一个单色的位图,这个模式将保留白色的像素为黑色像素。

     

    返回值:

    如果函数成功,返回先前的伸展模式

    如果失败,返回0

    WINDOWS NT/2000/XP:使用GetLastError可以得到更多的信息,下面是其中之一:

    意义

    ERROR_INVALID_PARAMETER

    一到多个参数无效

     

     

    备注:

    伸展模式定义了程序调用StretchBlt函数的时候怎么样在显示设备上用存在的像素合并位图行或列。

    BLACKONWHITE (STRETCH_ANDSCANS)WHITEONBLACK (STRETCH_ORSCANS)典型的用来保留单色位图的前景像素。COLORONCOLOR (STRETCH_DELETESCANS)模式通常用来保留彩色位图中的颜色。

    HALFTONE相对较慢,并要求更多的源图象处理,但提供较高的图像质量。同样SetBrushOrgEx也不惜是HALFTON模式以免刷子不对齐。 另外,伸展模式也依赖于设备驱动器的能力。

  • 相关阅读:
    mysql的if 和 case when
    hive的日期和时间
    DVWA——XSS(Stored)(存储型跨站脚本)
    DVWA——XSS(Reflected)(反射型跨站脚本)
    DVWA——SQL Injection(Blind)(SQL盲注)
    转载一篇注入类型判断
    DVWA——SQL Injection(SQL注入)
    DVWA——Insecure CAPTCHA (不安全的验证码)
    DVWA——File Upload(文件上传)
    DVWA——File Inclusion(文件包含)
  • 原文地址:https://www.cnblogs.com/huty/p/8518481.html
Copyright © 2011-2022 走看看