whole_func_string: function readImagesInfo(styleObjList, onDone) {
  
      // pngjs 没有提供同步 api, 所以只能用异步的方式读取图片信息
      zTool.forEach(styleObjList, function(styleObj, url, next) {
  
          if (url === 'length') {
              return next(); // 跳过 styleObjList 的 length 字段
          }
          var imageInfo = imageInfoCache[url];
  
          var onGetImageInfo = function(imageInfo) {
              if (imageInfo) {
                  imageInfoCache[url] = imageInfo;
  
                  // 从所有style里面，选取图片宽高最大的作为图片宽高
                  setImageWidthHeight(styleObj, imageInfo);
  
                  styleObj.imageInfo = imageInfo;
  
              } else { // 没有读取到图片信息, 可能是图片签名或格式不对, 读取出错了
                  delete imageInfoCache[url];
                  delete styleObjList[url];
                  styleObj.cssRules.forEach(function(style) {
                      style.mergeBackgound();
                  });
              }
              next();
          }
  
          if (imageInfo) {
              onGetImageInfo(imageInfo);
          } else {
              readImageInfo(styleObj.imageAbsUrl, onGetImageInfo);
          }
      }, onDone);
  }
func_code_string: function readImagesInfo(styleObjList, onDone) {
  
      // pngjs 没有提供同步 api, 所以只能用异步的方式读取图片信息
      zTool.forEach(styleObjList, function(styleObj, url, next) {
  
          if (url === 'length') {
              return next(); // 跳过 styleObjList 的 length 字段
          }
          var imageInfo = imageInfoCache[url];
  
          var onGetImageInfo = function(imageInfo) {
              if (imageInfo) {
                  imageInfoCache[url] = imageInfo;
  
                  // 从所有style里面，选取图片宽高最大的作为图片宽高
                  setImageWidthHeight(styleObj, imageInfo);
  
                  styleObj.imageInfo = imageInfo;
  
              } else { // 没有读取到图片信息, 可能是图片签名或格式不对, 读取出错了
                  delete imageInfoCache[url];
                  delete styleObjList[url];
                  styleObj.cssRules.forEach(function(style) {
                      style.mergeBackgound();
                  });
              }
              next();
          }
  
          if (imageInfo) {
              onGetImageInfo(imageInfo);
          } else {
              readImageInfo(styleObj.imageAbsUrl, onGetImageInfo);
          }
      }, onDone);
  }
func_documentation_string: **************************************************************** 3. 收集图片相关信息 **************************************************************** 
  读取图片的内容和大小
  @param  {StyleObjList}   styleObjList
  @param  {Function} onDone