Exemple #1
0
gint export_image(gchar *filename, GHashTable *cache, RSOutput *output, RSFilter *filter, gint snapshot, double exposure, gchar *outputname, gint boundingbox, RSFilter *resample) {
  RS_PHOTO *photo = NULL;

  if (cache) 
    {
      photo = (RS_PHOTO *) g_hash_table_lookup(cache, filename);
      if (!photo)
	{
	  photo = rs_photo_load_from_file(filename);
	  g_hash_table_insert(cache, filename, photo);
	  printf("Adding %s to cache\n", filename);
	}
    }
  else
    photo = rs_photo_load_from_file(filename);

  if (photo)
    {
      rs_metadata_load_from_file(photo->metadata, filename);
      rs_cache_load(photo);

      GList *filters = g_list_append(NULL, filter);
      rs_photo_set_exposure(photo, 0, exposure);
      rs_photo_apply_to_filters(photo, filters, snapshot);
      
      if (boundingbox > 0) 
	{
	  rs_filter_set_enabled(resample, TRUE);
	  rs_filter_set_recursive(filter,
				  "image", photo->input_response,
				  "filename", photo->filename,
				  "bounding-box", TRUE,
				  "width", boundingbox,
				  "height", boundingbox,
				  NULL);
	}
      else
	{
	  rs_filter_set_enabled(resample, FALSE);
	  rs_filter_set_recursive(filter,
				  "image", photo->input_response,
				  "filename", photo->filename,
				  NULL);
	}

      if (g_object_class_find_property(G_OBJECT_GET_CLASS(output), "filename"))
	g_object_set(output, "filename", outputname, NULL);

      rs_output_set_from_conf(output, "batch");
      rs_output_execute(output, filter);

      gint value = calculate_lightness(filter);
      printf("%s: %d\n", filename, value);
      g_list_free(filters);
      return value;
    }
  else
    return -1;
}
Exemple #2
0
RSMetadata *
rs_metadata_new_from_file(const gchar *filename)
{
	RSMetadata *metadata = rs_metadata_new();

	g_return_val_if_fail(filename != NULL, metadata);
	g_return_val_if_fail(g_path_is_absolute(filename), metadata);

	if (!rs_metadata_cache_load(metadata, filename))
	{
		rs_metadata_load_from_file(metadata, filename);
		rs_metadata_cache_save(metadata, filename);
	}

	generate_lens_identifier(metadata);
	return metadata;
}
Exemple #3
0
gboolean
rs_metadata_load(RSMetadata *metadata, const gchar *filename)
{
	g_return_val_if_fail(RS_IS_METADATA(metadata), FALSE);
	g_return_val_if_fail(filename != NULL, FALSE);
	g_return_val_if_fail(g_path_is_absolute(filename), FALSE);

	if (!rs_metadata_cache_load(metadata, filename))
	{
		if (rs_metadata_load_from_file(metadata, filename))
		{
			rs_metadata_cache_save(metadata, filename);
			generate_lens_identifier(metadata);
			return TRUE;
		}
		return FALSE;
	}
	generate_lens_identifier(metadata);
	return TRUE;
}