code: func (info *ImageInfoType) GobDecode(buf []byte) (err error) {
  	fields := []interface{}{&info.data, &info.smask, &info.n, &info.w, &info.h,
  		&info.cs, &info.pal, &info.bpc, &info.f, &info.dp, &info.trns, &info.scale, &info.dpi}
  	r := bytes.NewBuffer(buf)
  	decoder := gob.NewDecoder(r)
  	for j := 0; j < len(fields) && err == nil; j++ {
  		err = decoder.Decode(fields[j])
  	}
  
  	info.i, err = generateImageID(info)
  	return
  }
docs: // GobDecode decodes the specified byte buffer (generated by GobEncode) into
  // the receiving image.