zoukankan      html  css  js  c++  java
  • 谷歌新Logo如何做到只有305字节

    google-logo-01

    谷歌新旧Logo

    谷歌换logo已经有一段时间了,对于更换Logo的问题,大家讨论的最多的是到底新老Logo哪个更好看。

    但也有个别同学注意到了一个事实:谷歌的新Logo只有305字节那么大,而老的Logo则有14000字节。

    咳咳,按照谷歌的网络流量,单单一个Logo就能为整个互联网省下不少带宽啊。新Logo为什么就这么小呢?

    谷歌的旧Logo使用了serif字体,而这类字体只能通过贝塞尔曲线来创建。如下图所示,从谷歌的Logo可以看到,旧Logo有多达100个锚点,因此最终产生的的Logo文件达到约6Kb(6380 字节)大小也不足为奇。进行压缩以后,Logo的大小大约 2 KB (2145字节)大小。

    google-logo-02

    谷歌旧Logo

    谷歌新版的Logo在进行了大量简化,除了小写的字母g以外,其他字母均可以由圆形和矩形构造出来。如下图所示:

    google-logo-03

    谷歌新Logo

    整个新Logo由如下部分组成:

    1. 10个圆形。(大写字母G占2个圆,小写字母g占2个圆,字母e占两个圆,每个字母O占2个圆)。
    2. 5个矩形。(大写字母G占2个矩形,小写字母g占1个矩形,字母e占两个矩形)。
    3. 一个由7个锚点组成的图形(小写字母g的下半部分)。

    我创建了大写字母G的SVG矢量图,生成的文件大小是302字节,压缩后只有195字节。如下是未压缩的图形代码(由两个矩形和两个圆构成)。

    上面的代码生成的图形如下图右边的G所示。

    google-logo-04

    当然,还有另外一种绘制方式。我们可以使用strokes方式而不是fills方式来绘制Logo,这种方式最终产生的的文件更小,只有290字节。代码如下所示:

    <svg xmlns="SVG namespace" width="600" height="250">
    <g stroke-width="16" fill="none">
      <path d="M173 102a51 51 0 1 1-13-30m20 37h-53" stroke="#4a87ee"/>
      <circle cx="227" cy="128" r="32" stroke="#d83038"/>
      <circle cx="313" cy="128" r="32" stroke="#f4c022"/>
      <path d="M401 160a31 31 0 1 1 0-61m-4 0a24 29 0 1 1 0 61m26-67v79m-1-12a20 20 0 1 1-52 17" stroke="#4a87ee"/>
      <path stroke="#4ab95a" d="M449 51v115"/>
      <path d="M529 118a30 30 0 1 0-2 24m5-32l-62 28" stroke="#d83038"/>
    </g>
    </svg>

    使用strokes的绘制方式,整个Logo只需要两个圆(两个字母O),四条路径(分别对应字母G、 g、 l,和e)即可绘制完成。如下图所示:

    google-logo-05

    出处:Quora    译文:code123  

    文章同步发布于csdn、cnblogs和个人博客code123!转载请保留出处!

  • 相关阅读:
    懒懒的~~
    BigDecimal,注解
    遇到的一点问题些
    npm一点点
    TortoiseSvn问题研究(一)
    关于maven-基本
    HttpServletRequest二三事
    学习迭代1需求分析
    FMDB简单使用
    计算机中的事务、回滚
  • 原文地址:https://www.cnblogs.com/code123-cc/p/4804084.html
Copyright © 2011-2022 走看看