0%

RGB颜色空间

RGB(Red, Green, Blue)颜色空间最常用的用途就是显示器系统(计算机、电视机等都是采用RGB颜色空间来进行图像显示)。一般来说,电脑,电视机等是利用三个电子枪分别发射R分量,G分量,B分量的电子束,以此来激发屏幕上的RGB三种颜色的荧光粉,从而发出不同颜色、不同亮度的像素、进而组成了一幅图像;很明显,RGB颜色空间利用了物理学中的三原色叠加从而组成产生各种不同颜色的原理。在RGB颜色空间中,R、G、B三个分量的属性是独立的。也即是说,RGB颜色可以表示为(Red, Green, Blue)。其中,各个分量的数值越小,亮度越低。数值越大,亮度越高;如:(0,0,0)表示黑色,(255,255,255)表示白色;
RGB颜色空间表示颜色的格式有RGB565,RGB555,RGB24,RGB32等;
其中:

  • RGB565是使用16位表示一个像素:5位表示R,6位表示G,5位表示B;
  • RGB555是另一种16位表示一个像素的方法:分别用5位来表示RGB分量;剩余一位不用;
  • RGB24是使用24位表示一个像素:分别用8位表示RGB各个分量;这种方式最为常见;
  • RGB32是使用32位来表示一个像素:分别用8位表示RGB各个分量;剩余8位为alpha通道,也就是用来表示图像的“透明度”。注意:在某些系统中,剩余的8位并没有使用;
  • *RGB**色彩空间称为与设备相关的色彩空间,因为不同的扫描仪扫描同一幅图像,会得到不同色彩的图像数据;不同型号的显示器显示同一幅图像,也会有不同 的色彩显示结果。显示器和扫描仪使用的RGB空间与CIE 1931 RGB真实三原色表色系统空间是不同的,后者 是与设备无关的颜色空间。
阅读全文 »

Ubuntu14开始已经自带Hyper-V Integration Service,也就是说在Hyper-V里跑Ubuntu 14以上的版本的时候,再也不需要像以前的版本那样单独的安装Hyper-V Integration Service,因为所有的Hyper-V网卡驱动,显卡驱动和其他组件都已经内置了。

但是和操作系统的分辨率调整这一项,还是不如在Hyper-V里跑Windows的VM来的方便,默认的Ubuntu VM只有一种分辨率,不能像Windows VM那样根据当前的窗口自动调节分辨率,自适应屏幕。

目前的解决方法只能是手工指定分辨率,下面是具体步骤。

  1. 打开文件/etc/default/grub
  2. 找到GRUB_CMDLINE_LINUX_DEFAULT所在行,在最后加上video=hyperv_fb:[分辨率]
    比如我想要的分辨率是1600x900,这一行改完后就是
    1
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1600x900"
  3. 修改完毕后在Terminal环境里运行 sudo update-grub
  4. 重启机器后,便可以看到Ubuntu运行在新的分辨率下了。

PS:这种方法最高只能支持1920×1080 的分辨率,对于大显示器,高DPI的童鞋,可以考虑用RDP,VNC等方式来用上更高的分辨率。

在HttpHandler程序中使用Session时发现,HttpContext.Session==null ,后来在大神的博客得到了答案,原来需要IRequiresSessionState接口。

同时,自定义 HTTP 处理程序,从IHttpHandler继承,在写System.Web.HttpContext.Current.Session[“Value”]的时候,没有问题,但想将这个Session写到某个变量时或判断是否为空时如:HttpContext.Current.Session[“Value”]==null,发现Session的值为NULL,后来查MSDN,看到“在自定义 HTTP 处理程序中实现 IRequiresSessionState 接口,以确定处理程序是否需要对会话状态值具有读写访问权”,在自定义那个类上加上该接口后,果然正常了。

在使用asp.net编写webservice时,默认情况下是不支持session的,但我们可以把WebMethod的EnableSession选项设为true来显式的打开它,如下:

1
2
3
4
5
6
public class LogOut : IHttpHandler, IRequiresSessionState {
[WebMethod( EnableSession = true )] //需要using System.Web.Services;
public void ProcessRequest(HttpContext context)
{
}
}