aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch')
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch254
1 files changed, 0 insertions, 254 deletions
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch
deleted file mode 100644
index dfab99fd013..00000000000
--- a/nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From 8c11a20925686855023df90ed477957c7d7fe91e Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 15:54:21 -0400
-Subject: [PATCH] Willus mod for k2pdfopt
-
----
- src/allheaders.h | 4 ++
- src/dewarp2.c | 106 ++++++++++++++++++++++++++++++++++++++++++-----
- src/leptwin.c | 6 ++-
- 3 files changed, 104 insertions(+), 12 deletions(-)
-
-diff --git a/src/allheaders.h b/src/allheaders.h
-index e68eff1..b3cc729 100644
---- a/src/allheaders.h
-+++ b/src/allheaders.h
-@@ -669,6 +669,10 @@ LEPT_DLL extern L_DEWARPA * dewarpaReadMem ( const l_uint8 *data, size_t size );
- LEPT_DLL extern l_ok dewarpaWrite ( const char *filename, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteStream ( FILE *fp, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteMem ( l_uint8 **pdata, size_t *psize, L_DEWARPA *dewa );
-+/* WILLUS MOD */
-+ LEPT_DLL extern l_int32 dewarpBuildPageModel_ex ( L_DEWARP *dew, const char *debugfile,l_int32 fit_order );
-+ LEPT_DLL extern l_int32 dewarpFindVertDisparity_ex ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag,l_int32 fit_order );
-+ LEPT_DLL extern l_int32 dewarpBuildLineModel_ex ( L_DEWARP *dew, l_int32 opensize, const char *debugfile,l_int32 fit_order );
- LEPT_DLL extern l_ok dewarpBuildPageModel ( L_DEWARP *dew, const char *debugfile );
- LEPT_DLL extern l_ok dewarpFindVertDisparity ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag );
- LEPT_DLL extern l_ok dewarpFindHorizDisparity ( L_DEWARP *dew, PTAA *ptaa );
-diff --git a/src/dewarp2.c b/src/dewarp2.c
-index 220eec1..2e29500 100644
---- a/src/dewarp2.c
-+++ b/src/dewarp2.c
-@@ -144,9 +144,17 @@ static const l_float32 L_ALLOWED_W_FRACT = 0.05; /* no bigger */
- * longest textlines.
- * </pre>
- */
-+/* WILLUS MOD */
- l_ok
--dewarpBuildPageModel(L_DEWARP *dew,
-- const char *debugfile)
-+dewarpBuildPageModel(L_DEWARP *dew,const char *debugfile)
-+{
-+return(dewarpBuildPageModel_ex(dew,debugfile,2));
-+}
-+
-+l_ok
-+dewarpBuildPageModel_ex(L_DEWARP *dew,
-+ const char *debugfile,
-+ l_int32 fit_order)
- {
- l_int32 linecount, topline, botline, ret;
- PIX *pixs, *pix1, *pix2, *pix3;
-@@ -225,7 +233,7 @@ PTAA *ptaa1, *ptaa2;
- /* Get the sampled vertical disparity from the textline centers.
- * The disparity array will push pixels vertically so that each
- * textline is flat and centered at the y-position of the mid-point. */
-- if (dewarpFindVertDisparity(dew, ptaa2, 0) != 0) {
-+ if (dewarpFindVertDisparity_ex(dew, ptaa2, 0, fit_order) != 0) {
- L_WARNING("vertical disparity not built\n", procName);
- ptaaDestroy(&ptaa2);
- return 1;
-@@ -290,13 +298,24 @@ PTAA *ptaa1, *ptaa2;
- * a pdf. Non-pix debug output goes to /tmp.
- * </pre>
- */
-+/* WILLUS MOD */
- l_ok
- dewarpFindVertDisparity(L_DEWARP *dew,
- PTAA *ptaa,
- l_int32 rotflag)
- {
-+return(dewarpFindVertDisparity_ex(dew,ptaa,rotflag,2));
-+}
-+/* WILLUS MOD -- add cubic and quartic fits and ..._ex functions */
-+l_int32
-+dewarpFindVertDisparity_ex(L_DEWARP *dew,
-+ PTAA *ptaa,
-+ l_int32 rotflag,
-+ l_int32 fit_order)
-+{
- l_int32 i, j, nlines, npts, nx, ny, sampling;
--l_float32 c0, c1, c2, x, y, midy, val, medval, meddev, minval, maxval;
-+/* WILLUS MOD */
-+l_float32 c0, c1, c2, c3, c4, x, y, midy, val, medval, meddev, minval, maxval;
- l_float32 *famidys;
- NUMA *nax, *nafit, *nacurve0, *nacurve1, *nacurves;
- NUMA *namidy, *namidys, *namidysi;
-@@ -304,11 +323,22 @@ PIX *pix1, *pix2, *pixcirc, *pixdb;
- PTA *pta, *ptad, *ptacirc;
- PTAA *ptaa0, *ptaa1, *ptaa2, *ptaa3, *ptaa4, *ptaa5, *ptaat;
- FPIX *fpix;
-+/* WILLUS MOD */
-+l_int32 fit_order1,fit_order2;
-
- PROCNAME("dewarpFindVertDisparity");
-
- if (!dew)
- return ERROR_INT("dew not defined", procName, 1);
-+/* WILLUS MOD */
-+ if (fit_order < 10)
-+ fit_order1 = fit_order2 = fit_order;
-+ else
-+ {
-+ fit_order1=fit_order % 10;
-+ fit_order2=fit_order / 10;
-+ fit_order2=fit_order2 % 10;
-+ }
- dew->vsuccess = 0;
- if (!ptaa)
- return ERROR_INT("ptaa not defined", procName, 1);
-@@ -331,12 +361,32 @@ FPIX *fpix;
- pixdb = (rotflag) ? pixRotateOrth(dew->pixs, 1) : pixClone(dew->pixs);
- for (i = 0; i < nlines; i++) { /* for each line */
- pta = ptaaGetPta(ptaa, i, L_CLONE);
-- ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-- numaAddNumber(nacurve0, c2);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+ {
-+ ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+ numaAddNumber(nacurve0, c4);
-+ }
-+else if (fit_order1==3)
-+ {
-+ ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+ numaAddNumber(nacurve0, c3);
-+ }
-+else
-+ {
-+ ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+ numaAddNumber(nacurve0, c2);
-+ }
- ptad = ptaCreate(nx);
- for (j = 0; j < nx; j++) { /* uniformly sampled in x */
- x = j * sampling;
-- applyQuadraticFit(c2, c1, c0, x, &y);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+ applyQuarticFit(c4, c3, c2, c1, c0, x, &y);
-+else if (fit_order1==3)
-+ applyCubicFit(c3, c2, c1, c0, x, &y);
-+else
-+ applyQuadraticFit(c2, c1, c0, x, &y);
- ptaAddPt(ptad, x, y);
- }
- ptaaAddPta(ptaa0, ptad, L_INSERT);
-@@ -350,7 +400,13 @@ FPIX *fpix;
- for (i = 0; i < nlines; i++) {
- pta = ptaaGetPta(ptaa, i, L_CLONE);
- ptaGetArrays(pta, &nax, NULL);
-- ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+ptaGetQuarticLSF(pta, NULL, NULL, NULL, NULL, NULL, &nafit);
-+else if (fit_order1==3)
-+ptaGetCubicLSF(pta, NULL, NULL, NULL, NULL, &nafit);
-+else
-+ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
- ptad = ptaCreateFromNuma(nax, nafit);
- ptaaAddPta(ptaat, ptad, L_INSERT);
- ptaDestroy(&pta);
-@@ -494,11 +550,24 @@ FPIX *fpix;
- ptaa5 = ptaaCreate(nx); /* uniformly sampled across full height of image */
- for (j = 0; j < nx; j++) { /* for each column */
- pta = ptaaGetPta(ptaa4, j, L_CLONE);
-- ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+/* WILLUS MOD */
-+/* Order higher than 2 can cause a little craziness here. */
-+if (fit_order2>3)
-+ ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+else if (fit_order2==3)
-+ ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+else
-+ ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
- ptad = ptaCreate(ny);
- for (i = 0; i < ny; i++) { /* uniformly sampled in y */
- y = i * sampling;
-- applyQuadraticFit(c2, c1, c0, y, &val);
-+/* WILLUS MOD */
-+if (fit_order2>3)
-+ applyQuarticFit(c4, c3, c2, c1, c0, y, &val);
-+else if (fit_order2==3)
-+ applyCubicFit(c3, c2, c1, c0, y, &val);
-+else
-+ applyQuadraticFit(c2, c1, c0, y, &val);
- ptaAddPt(ptad, y, val);
- }
- ptaaAddPta(ptaa5, ptad, L_INSERT);
-@@ -1602,11 +1671,21 @@ FPIX *fpix;
- * See notes there.
- * </pre>
- */
-+/* WILLUS MOD */
- l_ok
- dewarpBuildLineModel(L_DEWARP *dew,
- l_int32 opensize,
- const char *debugfile)
- {
-+return(dewarpBuildLineModel_ex(dew,opensize,debugfile,2));
-+}
-+
-+l_int32
-+dewarpBuildLineModel_ex(L_DEWARP *dew,
-+ l_int32 opensize,
-+ const char *debugfile,
-+ l_int32 fit_order)
-+{
- char buf[64];
- l_int32 i, j, bx, by, ret, nlines;
- BOXA *boxa;
-@@ -1695,6 +1774,8 @@ PTAA *ptaa1, *ptaa2;
-
- /* Remove all lines that are not at least 0.75 times the length
- * of the longest line. */
-+/* WILLUS MOD */
-+/*
- ptaa2 = dewarpRemoveShortLines(pix, ptaa1, 0.75, DEBUG_SHORT_LINES);
- if (debugfile) {
- pix1 = pixConvertTo32(pix);
-@@ -1704,6 +1785,8 @@ PTAA *ptaa1, *ptaa2;
- pixDestroy(&pix1);
- pixDestroy(&pix2);
- }
-+*/
-+ptaa2=ptaa1;
- ptaaDestroy(&ptaa1);
- nlines = ptaaGetCount(ptaa2);
- if (nlines < dew->minlines) {
-@@ -1717,7 +1800,8 @@ PTAA *ptaa1, *ptaa2;
- * centers. The disparity array will push pixels vertically
- * so that each line is flat and centered at the y-position
- * of the mid-point. */
-- ret = dewarpFindVertDisparity(dew, ptaa2, 1 - i);
-+/* WILLUS MOD */
-+ ret = dewarpFindVertDisparity_ex(dew, ptaa2, 1 - i, fit_order);
-
- /* If i == 0, move the result to the horizontal disparity,
- * rotating it back by -90 degrees. */
-diff --git a/src/leptwin.c b/src/leptwin.c
-index 72643a0..573d33e 100644
---- a/src/leptwin.c
-+++ b/src/leptwin.c
-@@ -364,5 +364,9 @@ PIXCMAP *cmap;
-
- return hBitmap;
- }
--
-+#else
-+/* willus mod: Avoid weird issue with OS/X library archiver when there are no symbols */
-+int leptwin_my_empty_func(void);
-+int leptwin_my_empty_func(void)
-+{return(0);}
- #endif /* _WIN32 */
---
-2.22.0
-