From 989e6de90709e7ce78158eea1b1640d336b24120 Mon Sep 17 00:00:00 2001 From: sengian Date: Sun, 11 Aug 2013 20:46:55 +0200 Subject: [PATCH 1/6] Bulk trim newdb Widget + newdb modifications --- src/calibre/gui2/dialogs/metadata_bulk.py | 12 ++++++++++++ src/calibre/gui2/dialogs/metadata_bulk.ui | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index c72f1533a5..88c51d4e7f 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -204,6 +204,16 @@ class MyBlockingBusyNew(QDialog): # {{{ covers.sort(key=lambda x: x[1]) if covers: cache.set_cover({book_id:covers[-1][0]}) + elif args.cover_action == 'trim': + from calibre.utils.magick import Image + for book_id in self.ids: + cdata = cache.cover(book_id) + if cdata: + im = Image() + im.load(cdata) + im.trim(10) + cdata = im.export('png') + cache.set_cover({book_id:cdata}) # Formats if args.do_remove_format: @@ -1213,6 +1223,8 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): cover_action = 'generate' elif self.cover_from_fmt.isChecked(): cover_action = 'fromfmt' + elif self.cover_trim.isChecked(): + cover_action = 'trim' args = Settings(remove_all, remove, add, au, aus, do_aus, rating, pub, do_series, do_autonumber, do_remove_format, remove_format, do_swap_ta, diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui index 2b48e635be..afc5e55449 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.ui +++ b/src/calibre/gui2/dialogs/metadata_bulk.ui @@ -603,6 +603,13 @@ Future conversion of these books will use the default settings. + + + + &Trim cover + + + From 0aa490214b4c56c989a2ccf169fd7156f7e13c2c Mon Sep 17 00:00:00 2001 From: sengian Date: Sun, 11 Aug 2013 22:16:59 +0200 Subject: [PATCH 2/6] Bulk trim legacy db --- src/calibre/gui2/dialogs/metadata_bulk.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index 88c51d4e7f..48b1eec784 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -433,6 +433,15 @@ class MyBlockingBusy(QDialog): # {{{ if covers: self.db.set_cover(id, covers[-1][0]) covers = [] + elif cover_action == 'trim': + from calibre.utils.magick import Image + cdata = self.db.cover(id, index_is_id=True) + if cdata: + im = Image() + im.load(cdata) + im.trim(10) + cdata = im.export('png') + self.db.set_cover(id, cdata) if do_remove_format: self.db.remove_format(id, remove_format, index_is_id=True, From 6c2ca8975d4d702c761af746ea55abc3aeb5ce27 Mon Sep 17 00:00:00 2001 From: sengian Date: Sun, 11 Aug 2013 22:43:17 +0200 Subject: [PATCH 3/6] Added the fuzz tweak variable --- resources/default_tweaks.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index d8e158f842..411aab42a8 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -385,6 +385,14 @@ sort_dates_using_visible_fields = False generate_cover_title_font = None generate_cover_foot_font = None +#: Fuzz parameter value for cover trim +# The value used by ImageMagick for the +# fuzz distance when triming a cover. +# Colors within this distance are considered equal. +# The distance can be in absolute intensity units or, +# by appending %, a percentage of the maximum possible intensity +cover_trim_fuzz_value = 10 + #: Control behavior of the book list # You can control the behavior of doubleclicks on the books list. # Choices: open_viewer, do_nothing, From 0a01e4b72f22ab156cdc4e62debde6b3a75835a8 Mon Sep 17 00:00:00 2001 From: sengian Date: Sun, 11 Aug 2013 23:08:43 +0200 Subject: [PATCH 4/6] Replaced the fixed trim Single and bulk metadata trim modification with tweaked value --- src/calibre/gui2/dialogs/metadata_bulk.py | 4 ++-- src/calibre/gui2/metadata/basic_widgets.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index 48b1eec784..f0baaaf17a 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -211,7 +211,7 @@ class MyBlockingBusyNew(QDialog): # {{{ if cdata: im = Image() im.load(cdata) - im.trim(10) + im.trim(tweaks['cover_trim_fuzz_value']) cdata = im.export('png') cache.set_cover({book_id:cdata}) @@ -439,7 +439,7 @@ class MyBlockingBusy(QDialog): # {{{ if cdata: im = Image() im.load(cdata) - im.trim(10) + im.trim(tweaks['cover_trim_fuzz_value']) cdata = im.export('png') self.db.set_cover(id, cdata) diff --git a/src/calibre/gui2/metadata/basic_widgets.py b/src/calibre/gui2/metadata/basic_widgets.py index 519132bf00..a675220117 100644 --- a/src/calibre/gui2/metadata/basic_widgets.py +++ b/src/calibre/gui2/metadata/basic_widgets.py @@ -971,7 +971,7 @@ class Cover(ImageView): # {{{ return im = Image() im.load(cdata) - im.trim(10) + im.trim(tweaks['cover_trim_fuzz_value']) cdata = im.export('png') self.current_val = cdata From 361ab678fb9f6d97c6037049966e0294b04634ba Mon Sep 17 00:00:00 2001 From: sengian Date: Mon, 12 Aug 2013 07:18:29 +0200 Subject: [PATCH 5/6] Change image export format to jpg --- src/calibre/gui2/dialogs/metadata_bulk.py | 4 ++-- src/calibre/gui2/metadata/basic_widgets.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index f0baaaf17a..5f6d3bcc3a 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -212,7 +212,7 @@ class MyBlockingBusyNew(QDialog): # {{{ im = Image() im.load(cdata) im.trim(tweaks['cover_trim_fuzz_value']) - cdata = im.export('png') + cdata = im.export('jpg') cache.set_cover({book_id:cdata}) # Formats @@ -440,7 +440,7 @@ class MyBlockingBusy(QDialog): # {{{ im = Image() im.load(cdata) im.trim(tweaks['cover_trim_fuzz_value']) - cdata = im.export('png') + cdata = im.export('jpg') self.db.set_cover(id, cdata) if do_remove_format: diff --git a/src/calibre/gui2/metadata/basic_widgets.py b/src/calibre/gui2/metadata/basic_widgets.py index a675220117..0fb2d0b197 100644 --- a/src/calibre/gui2/metadata/basic_widgets.py +++ b/src/calibre/gui2/metadata/basic_widgets.py @@ -972,7 +972,7 @@ class Cover(ImageView): # {{{ im = Image() im.load(cdata) im.trim(tweaks['cover_trim_fuzz_value']) - cdata = im.export('png') + cdata = im.export('jpg') self.current_val = cdata def generate_cover(self, *args): From 1d0a181f5e5f29d43b37ad721e57d765bbc606d0 Mon Sep 17 00:00:00 2001 From: sengian Date: Mon, 12 Aug 2013 07:26:51 +0200 Subject: [PATCH 6/6] Fixed tweak text for % not available --- resources/default_tweaks.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/resources/default_tweaks.py b/resources/default_tweaks.py index 411aab42a8..47e742875b 100644 --- a/resources/default_tweaks.py +++ b/resources/default_tweaks.py @@ -386,11 +386,9 @@ generate_cover_title_font = None generate_cover_foot_font = None #: Fuzz parameter value for cover trim -# The value used by ImageMagick for the -# fuzz distance when triming a cover. +# The value used by ImageMagick for the fuzz distance when trimming a cover. # Colors within this distance are considered equal. -# The distance can be in absolute intensity units or, -# by appending %, a percentage of the maximum possible intensity +# The distance is in absolute intensity units. cover_trim_fuzz_value = 10 #: Control behavior of the book list