Hej! Supert.
Skal jeg lave den så den gemmer i 16 bit prophoto RGB - det er i hvert fald det bedste format til det - eller fatter gimp det ikke alligevel (dvs bare konverterer det til 8 bit sRGB)? Regards, Klaus Post http://www.klauspost.com On Mon, May 31, 2010 at 22:20, Anders Kvist <[email protected]> wrote: > Author: akv > Date: 2010-05-31 22:20:49 +0200 (Mon, 31 May 2010) > New Revision: 3412 > > Modified: > trunk/src/rs-external-editor.c > Log: > Using correct filterchain to export to gimp - copied from rs-save-dialog.c > > Modified: trunk/src/rs-external-editor.c > =================================================================== > --- trunk/src/rs-external-editor.c 2010-05-31 01:43:09 UTC (rev 3411) > +++ trunk/src/rs-external-editor.c 2010-05-31 20:20:49 UTC (rev 3412) > @@ -63,7 +63,7 @@ > #ifdef WIN32 > return FALSE; > #else > - RSOutput *output; > + RSOutput *output = NULL; > g_assert(RS_IS_PHOTO(photo)); > > // We need at least GIMP 2.4.0 to export photo > @@ -80,9 +80,71 @@ > filename = g_string_new(""); > g_string_printf(filename, "%s/.rawstudio_%.0f.tif",g_get_tmp_dir(), > g_random_double()*10000); > > + /* Setup our filter chain for saving */ > + RSFilter *finput = rs_filter_new("RSInputImage16", NULL); > + RSFilter *fdemosaic = rs_filter_new("RSDemosaic", finput); > + RSFilter *flensfun = rs_filter_new("RSLensfun", fdemosaic); > + RSFilter *ftransform_input = rs_filter_new("RSColorspaceTransform", > flensfun); > + RSFilter *frotate = rs_filter_new("RSRotate",ftransform_input) ; > + RSFilter *fcrop = rs_filter_new("RSCrop", frotate); > + RSFilter *fresample= rs_filter_new("RSResample", fcrop); > + RSFilter *fdcp = rs_filter_new("RSDcp", fresample); > + RSFilter *fdenoise= rs_filter_new("RSDenoise", fdcp); > + RSFilter *ftransform_display = > rs_filter_new("RSColorspaceTransform", fdenoise); > + RSFilter *fend = ftransform_display; > + > + /* Set input profile */ > + RSDcpFile *dcp_profile = rs_photo_get_dcp_profile(photo); > + RSIccProfile *icc_profile = rs_photo_get_icc_profile(photo); > + > + if (dcp_profile != NULL) > + { > + g_object_set(fdcp, "profile", dcp_profile, NULL); > + } > + if (icc_profile != NULL) > + { > + RSColorSpace *icc_space = > rs_color_space_icc_new_from_icc(icc_profile); > + g_object_set(finput, "color-space", icc_space, NULL); > + } > + > + /* Look up lens */ > + RSMetadata *meta = rs_photo_get_metadata(photo); > + RSLensDb *lens_db = rs_lens_db_get_default(); > + RSLens *lens = rs_lens_db_lookup_from_metadata(lens_db, meta); > + > + /* Apply lens information to RSLensfun */ > + if (lens) > + { > + rs_filter_set_recursive(fend, > + "make", meta->make_ascii, > + "model", meta->model_ascii, > + "lens", lens, > + "focal", (gfloat) meta->focallength, > + "aperture", meta->aperture, > + "tca_kr", > photo->settings[snapshot]->tca_kr, > + "tca_kb", > photo->settings[snapshot]->tca_kb, > + "vignetting", > photo->settings[snapshot]->vignetting, > + NULL); > + g_object_unref(lens); > + } > + > + g_object_unref(meta); > + > + rs_filter_set_recursive(fend, > + "image", photo->input_response, > + "angle", photo->angle, > + "orientation", photo->orientation, > + "rectangle", photo->crop, > + "filename", photo->filename, > + NULL); > + > + rs_filter_set_recursive(fend, > + "settings", photo->settings[snapshot], > + NULL); > + > output = rs_output_new("RSTifffile"); > g_object_set(output, "filename", filename->str, NULL); > - rs_photo_save(photo, output, -1, -1, FALSE, 1.0, snapshot); > + rs_output_execute(output, fend); > g_object_unref(output); > > message = dbus_message_new_method_call("org.gimp.GIMP.UI", > > > _______________________________________________ > Rawstudio-commit mailing list > [email protected] > http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit > _______________________________________________ Rawstudio-commit mailing list [email protected] http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit
