• GDI+ 位图介绍


    一、 图片分类、位图的概念

    位图图像(bitmap),亦称为点阵图像或栅格图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。

    当放大位图时,可以看见赖以构成整个图像的无数单个方块。

    扩大位图尺寸的效果是增大单个像素,从而使线条和形状显得参差不齐。然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的。

    用数码相机拍摄的照片、扫描仪扫描的图片以及计算机截屏图等都属于位图。

    位图的特点是可以表现色彩的变化和颜色的细微过渡,产生逼真的效果,缺点是在保存时需要记录每一个像素的位置和颜色值,占用较大的存储空间。

    图像类型
    组成
    优点
    缺点
    常用制作工具
    点阵图像
    像素
    只要有足够多的不同色彩的像素,就可以制作出色彩丰富的图象,逼真地表现自然界的景象
    缩放和旋转容易失真,同时文件容量较大
    Photoshop、画图等
    矢量图像
    数学向量
    文件容量较小,在进行放大、缩小或旋转等操作时图象不会失真
    不易制作色彩变化太多的图象
    Illustrator、Flash、CorelDraw等

    常见的位图格式

    bmp、(位图原格式)

    jpg、jpeg、webp  (支持压缩,高清且空间小)

    png、(支持透明度)

    gif、(支持透明度、支持动图)

    常见的矢量图格式:

    *.svg (web端已然支持,使用广泛)

    *.ico(Icon file),它是Windows的图标文件格式。

    *.ai

    *.bw

    *.cdr

    ................

    注意:多数的矢量图只能特定软件打开。

    二、位图编码

    RGB
    位图颜色的一种编码方法,用红、绿、蓝三原色的光学强度来表示一种颜色。这是最常见的位图编码方法,可以直接用于屏幕显示。Argb就是增加了透明通道。
     
    CMYK
    位图颜色的一种编码方法,用青、品红、黄、黑四种颜料含量来表示一种颜色。常用的位图编码方法之一,可以直接用于彩色印刷。

    位图和像素

    处理位图时,要着重考虑分辨率
    处理位图时,输出图像的质量决定于处理过程开始时设置的分辨率高低。
    分辨率是一个笼统的术语,它指一个图像文件中包含的细节和信息的大小,以及输入、输出、或显示设备能够产生的细节程度。操作位图时,分辨率既会影响最后输出的质量也会影响文件的大小。
    处理位图需要三思而后行,因为给图像选择的分辨率通常在整个过程中都伴随着文件。无论是在一个300 dpi的打印机还是在一个2570dpi的照排设备上印刷位图文件,文件总是以创建图像时所设的分辨率大小印刷,除非打印机的分辨率低于图像的分辨率。
    如果希望最终输出看起来和屏幕上显示的一样,那么在开始工作前,就需要了解图像的分辨率和不同设备分辨率之间的关系。

    三、图像属性

    索引颜色/颜色表
    位图常用的一种压缩方法。从位图图片中选择最有代表性的若干种颜色(通常不超过256种)编制成颜色表,然后将图片中原有颜色用颜色表的索引来表示。这样原图片可以被大幅度有损压缩。适合于压缩网页图形等颜色数较少的图形,不适合压缩照片等色彩丰富的图形。 
     
    Alpha通道
    在原有的图片编码方法基础上,增加像素的透明度信息。图形处理中,通常把RGB三种颜色信息称为红通道、绿通道和蓝通道,相应的把透明度称为Alpha通道。多数使用颜色表的位图格式都支持Alpha通道。
     
    色彩深度
    色彩深度又叫色彩位数,即位图中要用多少个二进制位来表示每个点的颜色,是分辨率的一个重要指标。常用有1位(单色),2位(4色,CGA),4位(16色,VGA),
    8位(256色),
    16位(增强色),
    24位和
    32位(真彩色)等。
    色深8位及以上的位图还可以根据其中分别表示RGB三原色或CMYK四原色(有的还包括Alpha通道)的位数进一步分类,如16位位图图片还可分为R5G6B5,R5G5B5X1(有1位不携带信息),R5G5B5A1,R4G4B4A4等等。

     更多:

    .Net Core GDI+ 使用基础

    C# 实现中文转颜色 - 实现根据名字自动生成头像

    GDI+ DrawString字间距处理

  • 相关阅读:
    设计模式的六大原则 ---- 理论知识
    动手编写TCP服务器系列之一:日志文件
    Shell语言系列之一:文件处理
    给Amazon ec2 增加卷(Volume)并挂载到系统
    Java打包问题之一:打包出现java.io.IOException: invalid header field
    struct中长度为0的数组用途与原理
    child和childNodes的区别
    学习es6 setter/getter研究
    tabIndex-bootstrap中Get到的
    tml兼容性
  • 原文地址:https://www.cnblogs.com/tianma3798/p/14421349.html
Copyright © 2020-2023  润新知