summary refs log tree commit diff
path: root/pkgs/applications/misc/k2pdfopt/leptonica.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/misc/k2pdfopt/leptonica.patch')
-rw-r--r--pkgs/applications/misc/k2pdfopt/leptonica.patch254
1 files changed, 0 insertions, 254 deletions
diff --git a/pkgs/applications/misc/k2pdfopt/leptonica.patch b/pkgs/applications/misc/k2pdfopt/leptonica.patch
deleted file mode 100644
index dfab99fd013..00000000000
--- a/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
-