zoukankan      html  css  js  c++  java
  • 图片格式瞎扯淡

    图片格式瞎扯淡

    作者:秦凡鹏

    主要内容

    • 图片的两种类型——位图与矢量图 {:&.moveIn}
    • 常见的图片格式——— GIG、JPG、PNG、SVG
    • Canvas

    位图(bitmap, 又名点阵图像)

    十字绣
    红绿色盲测试图

    • 宏观上讲,类似于上面的图片

    • 又名: 点阵图像,绘制图像,光栅图

    • 以自然的光学的眼光将图片看成在平面上密集排布的点的集合

    • 存储单位是图像上每一点的像素值,

    • 因此一般的图像文件都很大,会占用大量的网络带宽

    放大后的位图

    位图放大效果

    • 放大即放大每个像素块,故放大后会产生如马赛克色块般的锯齿边缘

    位图适用场景

    风景图
    • 表示真实图像的地方
    • 因为“像素”可以能真实呈现图像的原貌以及色彩上的细微差别
    • 故适合如人物、风景、产品等这类需要表示真实图像的地方
    • 而位图则适合于没有明显规律的、颜色丰富细腻的图片。

    矢量图(Vector Image)

    矢量图

    • 线来描述物体
    • 以“数学运算”为基础,类似“两点成一条直线”的概念
    • 文件会比较小,同时也能提供高清晰的画面,适合于直接打印或输出。
    • 它用抽象的视角看待图形,记录其中展示的模式而不是各个点的原始数据。

    放大后的矢量图

    矢量图放大效果

    • 两点的距离可以是1cm,也可以10cm,所形成直线是根据两点的距离重新计算出来的,
      因此不会涉及“分辨率”的问题,当然也就没有“放大后会失真产生锯齿状”的问题

    矢量图适用场景

    卡通图
    按钮
    图标

    • 矢量图则是适合卡通、线条画等表现抽象意念的地方,因为矢量图在色彩的表现上不及位图来的细腻
    • 因此矢量图一般给人的印象多为仿真的感觉,不易产生像照片拍摄出来的细腻质感,但却是讲究精准的设计图最好的选择。

    GIF (Graphics Interchange Format)

    动态小车车图

    • 无损压缩技术 {:&.moveIn}
    • 最多支持256色
    • 多幅彩色图像组合而成的动画。
    • 压缩比50%左右

    JPG/JPEG

    • 有损压缩 {:&.moveIn}

    • 支持全彩

    • 可变的压缩比可以控制文件大小

    • 所谓的全彩,是1677万色,比起GIF格式的256色的色彩丰富很多

    PNG(Portable Network Graphic Format)

    • 集大成者
    • 其目的是试图替代GIF和TIFF文件格式

    PNG的压缩

    • 如果你的图像是以文字、形状及线条为主,png会用类似gif的压缩方法
    • 而对于相片品质一类的压缩,则采用类似于jpg的压缩方式,但是不同于jpg的地方在于:它处理相片类图像亦是采用非破坏性压缩,图像压缩后能保持与压缩前图像质量一样,没有一点失真。

    PNG的透明支持

    • gif格式虽然也支持透明显示,采用gif格式透明图像过于刻板,因为gif透明图像只有1与0的透明信息、只有透明或不透明两种选择,没有层次;
    • 而png提供了α频段0至255的透明信息,可以使图像的透明区域出现深度不同的层次。
    • 好处:png图像就可以让图像覆盖在任何背景上都看不到接缝,改善gif透明图像描边不佳的问题。

    GIF/JPG/PNG对比

    三种格式对比图

    SVG(Scalable Vector Graphics,可缩放矢量图形)

    • 任意放大图形显示,但绝不会以牺牲图像质量为代价

    基于XML的SVG

           <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
             <text x="0" y="15" fill="red">I love SVG</text>
           </svg>
    
    • 文本独立
    • SVG 图像可被搜索、索引、脚本化
    • 完全支持DOM
    • 平均来讲,SVG文件比JPEG和GIF格式的文件要小很多,因而下载也很快。

    SVG vs Canvas

    Canvas SVG
    依赖分辨率 不依赖分辨率
    不支持事件处理器 支持事件处理器
    弱的文本渲染能力 最适合带有大型渲染区域的应用程序(比如谷歌地图)
    最适合图像密集型的游戏,其中的许多对象会被频繁重绘 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)不适合游戏应用

    其它非主流图像格式

    • PCX格式
    • DXF格式
    • WMF格式
    • EMF格式
    • LIC(FLI/FLC)格式
    • EPS格式
    • TGA格式

    参考资料

  • 相关阅读:
    寒假作业3
    寒假作业2
    寒假作业
    Binary Indexed Tree
    Quick Union
    Prim's Algorithm & Kruskal's algorithm
    面向对象阶段总结 | 肆
    面向对象阶段总结 | 叁
    面向对象阶段总结 | 贰
    面向对象阶段总结 | 壹
  • 原文地址:https://www.cnblogs.com/qinfanpeng/p/picture_format.html
Copyright © 2011-2022 走看看