在VC中修改显示器的分辩率和色彩

 

在VC中修改显示器的分辩率和色彩


  在日常的程序开发中,有时我们想让自己编写的程序运行在显示器一定的分辨率和色彩数目下。如何让程序自动修改当前的显示器设置呢?这首先得从显示器的工作原理谈起。
  一、相关原理
  我们知道,显示器所显示的内容对应于显存,在显示器上最小的单位是象素(Pixel,这里仅考虑逻辑象素),显存的最小的单位是位(Bits)。 显示器工作的特征主要体现在色彩数和分辨率两方面。显示器所显示的色彩的数目取决于单位象素所使用的显存的位数(Bits)。在显存中,如果8位显存(即一个向象素使用了一字节的显存)对应于显示器上的一个象素,那么显示器所显示的色彩数目为28=256色;同样,如果当前的色彩为16位,那么显示器所显示的色彩数目为216=65536种色彩。显示器的分辨率指的是水平分辨率和垂直分辨率,经常所说的800X600,就是指在水平方面上所显示的象素为800个,在垂直方面上所显示的象素为600个。
  在VC中提供了修改显示设备(如显示器、打印机等等,本文只就显示器而言)属性的函数:ChangeDisplaySettings,该函数能够按照你的需要对显示设备作出相应的修改。其函数申明如下:
  LONG ChangeDisplaySettings(
  LPDEVMODE lpDevMode,
  DWORD dwflags
  );
  其参数的含义如下:
  lpDevMode:一个指向DEVMODE数据结构的指针,DEVMODE的数据结构描述了欲设定显示器的各类属性值。通常情况下使用到的参数有:
  dmSize:所用DEVMODE数据结构的大小ÿ

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: EDID(扩展显示标识数据)是显示器的一个数据集,用于描述其特性和能力,供计算机或显卡驱动程序读取和理解。EDID数据包含了显示器的分辨率、刷新率、色彩空间、视频支持格式以及其他相关信息。在视频控制器(VC)与显示器之间建立连接时,VC会读取显示器的EDID来获取这些信息。 VC读取显示器的EDID是通过I2C总线传输数据来完成的。I2C(主从式串行总线)是一种用于芯片间通信的协议,它允许VC显示器通过几根数据线传输信息。通过发送特定的命令序列,VC可以请求读取显示器的EDID数据。 当VC发出读取EDID的请求时,它会向显示器发送一个启动命令,指示显示器开始在I2C总线上提供EDID数据。显示器会响应这个命令,并将EDID数据按照一定的格式发送回VCVC会将接收到的数据解码,并提取出有用的信息供显卡驱动程序使用。 VC读取EDID的目的是为了确保计算机能够正确地识别和配置连接的显示器显示器的分辨率、刷新率和色彩空间等参数都是根据EDID数据来确定的。通过读取EDID,VC可以自动适配显卡输出信号,并保证显示器能够正常工作。 总之,VC读取显示器的EDID是通过I2C总线传输数据来完成的。这个过程VC发送读取EDID的命令,显示器响应并传输EDID数据回VC,最终VC解析数据并使用其的信息以正确配置显示器。 ### 回答2: vc读取显示器的edid是为了获取显示器的详细信息。EDID(Extended Display Identification Data)是一种包含显示器技术参数的数据结构,包括显示器的制造商、型号、分辨率、刷新率、色彩能力等信息。 当VC显示器连接后,它会向显示器发送一个查询EDID的指令。显示器收到指令后,会返回一个包含EDID的数据块。VC通过解析这个数据块,可以获取与显示器相关的信息。 VC读取显示器的EDID有以下几个目的: 1. 显示器参数识别:通过读取EDID,VC可以获取显示器的分辨率、刷新率等技术参数,并根据这些参数来调整自己的输出设置,以确保与显示器的兼容性。 2. 显示器识别:通过读取EDID的制造商和型号信息,VC可以识别出连接的显示器品牌和型号,并根据这些信息来配置显示器的驱动程序和特性支持。 3. 显示器校准:通过读取EDID色彩能力等信息,VC可以根据显示器的特性来进行色彩校准,以获得更准确的色彩显示效果。 总之,VC读取显示器的EDID是为了了解并适配显示器的技术参数和特性,以提供最佳的显示效果和兼容性。这对于确保显示器VC之间的正常工作以及提供良好的用户体验非常重要。 ### 回答3: VC(Video Controller,视频控制器)通过读取显示器的EDID(Extended Display Identification Data,扩展显示识别数据)来获取有关显示器的详细信息。 EDID是一组存储在显示器内部的数据,包含了显示器的制造商信息、分辨率、刷新率、色彩能力以及其他支持的显示模式等。它可以以二进制格式进行编码,并通过I2C总线与VC进行通信。 VC通过发送I2C命令和地址,读取连接的显示器的EDID。读取EDID的主要目的是为了了解显示器的物理特性和显示能力,以便于合理地配置和优化显示设置。根据EDID的内容,VC可以判断显示器的最大分辨率和刷新率,并与图形处理器进行匹配,以确保最佳的图像输出。此外,VC还可以根据EDID色彩能力信息,选择合适的色彩空间和显示模式,以提供最佳的图像显示效果。 读取EDID还可以提供额外的信息,例如显示器的型号、序列号、制造商、支持的音频格式等,这些信息对于用户和系统识别和管理显示器都非常有用。 综上所述,VC通过读取显示器的EDID数据,能够了解到显示器的详细信息,从而为用户提供更准确、匹配的图像显示设置。这样可以保证显示器和系统之间的兼容性和最佳的视觉体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gnuljf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值