diff options
| author | John Smith <john.smith7545@yahoo.com> | 2013-05-11 05:35:12 +0000 |
|---|---|---|
| committer | John Smith <john.smith7545@yahoo.com> | 2013-05-11 05:35:12 +0000 |
| commit | ca6da31c170148cb396d4f0a023c54e202716bdd (patch) | |
| tree | 4789f8500589a5d9e7f8140419522bccb31c0a36 /src | |
| parent | Improve code documentation for symbols (diff) | |
| download | inkscape-ca6da31c170148cb396d4f0a023c54e202716bdd.tar.gz inkscape-ca6da31c170148cb396d4f0a023c54e202716bdd.zip | |
Fix for 871563 : JPG images are recompressed with lower quality when embedded
(bzr r12325)
Diffstat (limited to 'src')
| -rw-r--r-- | src/sp-image.cpp | 8 | ||||
| -rw-r--r-- | src/ui/dialog/inkscape-preferences.cpp | 3 | ||||
| -rw-r--r-- | src/ui/dialog/inkscape-preferences.h | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/sp-image.cpp b/src/sp-image.cpp index dacea3417..d60fbc181 100644 --- a/src/sp-image.cpp +++ b/src/sp-image.cpp @@ -42,6 +42,7 @@ #include "xml/quote.h" #include "xml/repr.h" #include "snap-candidate.h" +#include "preferences.h" #include "io/sys.h" #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -63,7 +64,7 @@ g_message( __VA_ARGS__ );\ } -#include "preferences.h" + #include <gtk/gtk.h> #endif // DEBUG_LCMS #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -1469,9 +1470,12 @@ void sp_embed_image( Inkscape::XML::Node *image_node, GdkPixbuf *pb, Glib::ustri format = "png"; } + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + Glib::ustring quality = Glib::ustring::format(prefs->getInt("/dialogs/import/quality", 100)); + gchar *data = 0; gsize length = 0; - gdk_pixbuf_save_to_buffer(pb, &data, &length, format.data(), NULL, NULL); + gdk_pixbuf_save_to_buffer(pb, &data, &length, format.data(), NULL, "quality", quality.c_str(), NULL); // Save base64 encoded data in image node // this formula taken from Glib docs diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index 8eb643c6e..6a696045d 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -1432,6 +1432,9 @@ void InkscapePreferences::initPageBitmaps() Glib::ustring values[] = {"embed", "link", "ask"}; _bitmap_import.init("/dialogs/import/link", labels, values, G_N_ELEMENTS(values), "ask"); _page_bitmaps.add_line( false, _("Bitmap import:"), _bitmap_import, "", "", false); + + _bitmap_import_quality.init("/dialogs/import/quality", 1, 100, 1, 1, 100, true, false); + _page_bitmaps.add_line( false, _("Bitmap import quality:"), _bitmap_import_quality, "%", "Bitmap import quality (jpeg only). 100 is best quality", false); } _importexport_import_res.init("/dialogs/import/defaultxdpi/value", 0.0, 6000.0, 1.0, 1.0, PX_PER_IN, true, false); _page_bitmaps.add_line( false, _("Default _import resolution:"), _importexport_import_res, _("dpi"), diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h index f4d8c1d9a..82df26d54 100644 --- a/src/ui/dialog/inkscape-preferences.h +++ b/src/ui/dialog/inkscape-preferences.h @@ -367,6 +367,7 @@ protected: UI::Widget::PrefCheckButton _misc_bitmap_autoreload; UI::Widget::PrefSpinButton _bitmap_copy_res; UI::Widget::PrefCombo _bitmap_import; + UI::Widget::PrefSpinButton _bitmap_import_quality; UI::Widget::PrefEntry _kb_search; UI::Widget::PrefCombo _kb_filelist; |
