code: func (i *Identicon) Make(data []byte) image.Image {
  	h := md5.New()
  	h.Write(data)
  	sum := h.Sum(nil)
  
  	// 第一个方块
  	index := int(sum[0]+sum[1]+sum[2]+sum[3]) % len(blocks)
  	b1 := blocks[index]
  
  	// 第二个方块
  	index = int(sum[4]+sum[5]+sum[6]+sum[7]) % len(blocks)
  	b2 := blocks[index]
  
  	// 中间方块
  	index = int(sum[8]+sum[9]+sum[10]+sum[11]) % len(centerBlocks)
  	c := centerBlocks[index]
  
  	// 旋转角度
  	angle := int(sum[12]+sum[13]+sum[14]) % 4
  
  	// 根据最后一个字段，获取前景颜色
  	index = int(sum[15]) % len(i.foreColors)
  
  	p := image.NewPaletted(i.rect, []color.Color{i.backColor, i.foreColors[index]})
  	drawBlocks(p, i.size, c, b1, b2, angle)
  	return p
  }
docs: // Make 根据 data 数据产生一张唯一性的头像图片。