From 9442e747b044067385347e8760f960003c0473bb Mon Sep 17 00:00:00 2001 From: keringo <> Date: Wed, 25 Jun 2025 20:50:17 +0300 Subject: [PATCH 1/9] added black_hex and white_hex fields in context --- lib/context.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/context.h b/lib/context.h index 29b2c1b..74d2c7e 100644 --- a/lib/context.h +++ b/lib/context.h @@ -50,6 +50,8 @@ typedef struct KOPTContext { int read_max_width; int read_max_height; int writing_direction; + int black_hex; + int white_hex; double zoom; double margin; From 2a6af66f0f52c772033feb423b9b2cfb27e0e2cd Mon Sep 17 00:00:00 2001 From: keringo <> Date: Thu, 26 Jun 2025 01:52:40 +0300 Subject: [PATCH 2/9] set black_hex and white_hex to k2pdfopt's colorfg and colorbg --- lib/setting.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/setting.c b/lib/setting.c index f429279..f757cfd 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -65,6 +65,8 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->user_src_dpi = kctx->dev_dpi*kctx->quality; k2settings->defect_size_pts = kctx->defect_size; k2settings->dst_gamma = kctx->contrast; + sprintf(k2settings->dst_fgcolor,"%x",kctx->black_hex); + sprintf(k2settings->dst_bgcolor,"%x",kctx->white_hex); if (kctx->writing_direction == 0) k2settings->src_left_to_right = 1; From 4b399157235257c4398bd2068d771c4ca19a6534 Mon Sep 17 00:00:00 2001 From: keringo <> Date: Thu, 26 Jun 2025 15:42:13 +0300 Subject: [PATCH 3/9] white threshold < 255 sets src_paintwhite flag on --- lib/context.h | 2 -- lib/setting.c | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/context.h b/lib/context.h index 74d2c7e..29b2c1b 100644 --- a/lib/context.h +++ b/lib/context.h @@ -50,8 +50,6 @@ typedef struct KOPTContext { int read_max_width; int read_max_height; int writing_direction; - int black_hex; - int white_hex; double zoom; double margin; diff --git a/lib/setting.c b/lib/setting.c index f757cfd..3919e0a 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -58,6 +58,7 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->vertical_line_spacing = kctx->line_spacing; k2settings->text_wrap = kctx->wrap; k2settings->src_whitethresh = kctx->white; + k2settings->src_paintwhite = k2settings->src_whitethresh < 255 ? 1 : 0; k2settings->src_autostraighten = kctx->straighten; k2settings->preserve_indentation = kctx->indent; k2settings->max_columns = kctx->columns; @@ -65,8 +66,6 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->user_src_dpi = kctx->dev_dpi*kctx->quality; k2settings->defect_size_pts = kctx->defect_size; k2settings->dst_gamma = kctx->contrast; - sprintf(k2settings->dst_fgcolor,"%x",kctx->black_hex); - sprintf(k2settings->dst_bgcolor,"%x",kctx->white_hex); if (kctx->writing_direction == 0) k2settings->src_left_to_right = 1; From ea40751abfcf32bbb1ce0f83709390615aeba59a Mon Sep 17 00:00:00 2001 From: keringo <> Date: Thu, 26 Jun 2025 18:35:46 +0300 Subject: [PATCH 4/9] src_paintwhite always on --- lib/setting.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/setting.c b/lib/setting.c index 3919e0a..1a66585 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -58,7 +58,7 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->vertical_line_spacing = kctx->line_spacing; k2settings->text_wrap = kctx->wrap; k2settings->src_whitethresh = kctx->white; - k2settings->src_paintwhite = k2settings->src_whitethresh < 255 ? 1 : 0; + k2settings->src_paintwhite = 1; k2settings->src_autostraighten = kctx->straighten; k2settings->preserve_indentation = kctx->indent; k2settings->max_columns = kctx->columns; From 929dd5b891fe5d53313008c750c9abea03ca971b Mon Sep 17 00:00:00 2001 From: keringo <> Date: Thu, 26 Jun 2025 19:00:40 +0300 Subject: [PATCH 5/9] experiments --- lib/setting.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/setting.c b/lib/setting.c index 1a66585..c8e5c5d 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -58,7 +58,8 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->vertical_line_spacing = kctx->line_spacing; k2settings->text_wrap = kctx->wrap; k2settings->src_whitethresh = kctx->white; - k2settings->src_paintwhite = 1; + k2settings->src_paintwhite = kctx->white < 255 ? 1 : 0; + k2settings->contrast_max = kctx->white < 255 && kctx->white > 0 ? (510. / kctx->white) : k2settings->contrast_max; k2settings->src_autostraighten = kctx->straighten; k2settings->preserve_indentation = kctx->indent; k2settings->max_columns = kctx->columns; From 5d79b5cba562ea56ebebd9ff4e2bff7aa1bf1071 Mon Sep 17 00:00:00 2001 From: keringo <> Date: Thu, 26 Jun 2025 19:04:15 +0300 Subject: [PATCH 6/9] experiments --- lib/setting.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/setting.c b/lib/setting.c index c8e5c5d..3d75c27 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -59,7 +59,7 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->text_wrap = kctx->wrap; k2settings->src_whitethresh = kctx->white; k2settings->src_paintwhite = kctx->white < 255 ? 1 : 0; - k2settings->contrast_max = kctx->white < 255 && kctx->white > 0 ? (510. / kctx->white) : k2settings->contrast_max; + k2settings->contrast_max = kctx->white < 255 && kctx->white > 0 ? (5 * 255 / kctx->white) : k2settings->contrast_max; k2settings->src_autostraighten = kctx->straighten; k2settings->preserve_indentation = kctx->indent; k2settings->max_columns = kctx->columns; From 52abc6f41c6ff683e09924da94103e409cefe99f Mon Sep 17 00:00:00 2001 From: keringo <> Date: Thu, 26 Jun 2025 19:12:07 +0300 Subject: [PATCH 7/9] experiment removed --- lib/setting.c | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/setting.c b/lib/setting.c index 3d75c27..f7ffabf 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -59,7 +59,6 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->text_wrap = kctx->wrap; k2settings->src_whitethresh = kctx->white; k2settings->src_paintwhite = kctx->white < 255 ? 1 : 0; - k2settings->contrast_max = kctx->white < 255 && kctx->white > 0 ? (5 * 255 / kctx->white) : k2settings->contrast_max; k2settings->src_autostraighten = kctx->straighten; k2settings->preserve_indentation = kctx->indent; k2settings->max_columns = kctx->columns; From 50914df21b908577a74341d0c725eb70fc6483d1 Mon Sep 17 00:00:00 2001 From: keringo <> Date: Thu, 26 Jun 2025 19:51:41 +0300 Subject: [PATCH 8/9] tabs -> spaces --- lib/setting.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/setting.c b/lib/setting.c index f7ffabf..928a87a 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -58,7 +58,7 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->vertical_line_spacing = kctx->line_spacing; k2settings->text_wrap = kctx->wrap; k2settings->src_whitethresh = kctx->white; - k2settings->src_paintwhite = kctx->white < 255 ? 1 : 0; + k2settings->src_paintwhite = kctx->white < 255 ? 1 : 0; k2settings->src_autostraighten = kctx->straighten; k2settings->preserve_indentation = kctx->indent; k2settings->max_columns = kctx->columns; From df18dfb0b7e33c001f1133c8b3c139b04f0e0a05 Mon Sep 17 00:00:00 2001 From: kerivin Date: Mon, 4 Aug 2025 19:47:55 +0300 Subject: [PATCH 9/9] separate setting for paint_white --- lib/context.h | 1 + lib/setting.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/context.h b/lib/context.h index 29b2c1b..8881185 100644 --- a/lib/context.h +++ b/lib/context.h @@ -35,6 +35,7 @@ typedef struct KOPTContext { int trim; int wrap; int white; + int paint_white; int indent; int rotate; int columns; diff --git a/lib/setting.c b/lib/setting.c index 928a87a..571960d 100644 --- a/lib/setting.c +++ b/lib/setting.c @@ -58,7 +58,7 @@ void k2pdfopt_settings_init_from_koptcontext(K2PDFOPT_SETTINGS *k2settings, KOPT k2settings->vertical_line_spacing = kctx->line_spacing; k2settings->text_wrap = kctx->wrap; k2settings->src_whitethresh = kctx->white; - k2settings->src_paintwhite = kctx->white < 255 ? 1 : 0; + k2settings->src_paintwhite = kctx->paint_white; k2settings->src_autostraighten = kctx->straighten; k2settings->preserve_indentation = kctx->indent; k2settings->max_columns = kctx->columns;