Beispiel #1
0
image_t *charger_image_pgm(const char *nom_fichier) {
  FILE *file = fopen(nom_fichier, "r");
  image_t *img = NULL;

  if (file) {
    char buffer[TMP_STR_SIZE];

    fgets(buffer, TMP_STR_SIZE, file);
    read_funct_t fun_read = read_strategy(buffer);
    if (fun_read) {
      img = creer_image_path(nom_fichier);
      while (fgets(buffer, TMP_STR_SIZE, file) &&
          (sscanf(buffer, "%zu %zu", &img->w, &img->h) == 0)) {}
      while (fgets(buffer, TMP_STR_SIZE, file) &&
          (sscanf(buffer, "%hhu", &img->maxval) == 0)) {}
      img->buff = fun_read(file, img);
    } else {
      perror("charge_image_pgm: Error invalid pgm file.");
    }
    fclose(file);
  } else {
    perror("charge_image_pgm: Error invalid filename or file.");
  }
  return img;
}
void read_classes_with_one_subclass_discr_fun(FILE *fd, const majlattice *lattice, majclass ***classes, size_t *num_classes, fun **funs) {
  *num_classes = uint64_read(fd);
  *classes = malloc(*num_classes * sizeof(majclass *));
  assert(*classes != NULL);
  *funs = malloc(*num_classes * sizeof(fun));
  assert(*funs != NULL);
  for(size_t i = 0; i < *num_classes; ++i) {
    majclass_id class_id, subclass_id;
    majclass_id_read(fd, &class_id);
    majclass_id_read(fd, &subclass_id);
    fun_read(fd, *funs + i);
    (*classes)[i] = majlattice_get_class(lattice, class_id);
  }  
}