comparison mupdf-source/thirdparty/tesseract/src/ccstruct/debugpixa.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 #ifndef TESSERACT_CCSTRUCT_DEBUGPIXA_H_
2 #define TESSERACT_CCSTRUCT_DEBUGPIXA_H_
3
4 #include "image.h"
5
6 #include <allheaders.h>
7
8 namespace tesseract {
9
10 // Class to hold a Pixa collection of debug images with captions and save them
11 // to a PDF file.
12 class DebugPixa {
13 public:
14 // TODO(rays) add another constructor with size control.
15 DebugPixa() {
16 pixa_ = pixaCreate(0);
17 #ifdef TESSERACT_DISABLE_DEBUG_FONTS
18 fonts_ = NULL;
19 #else
20 fonts_ = bmfCreate(nullptr, 14);
21 #endif
22 }
23 // If the filename_ has been set and there are any debug images, they are
24 // written to the set filename_.
25 ~DebugPixa() {
26 pixaDestroy(&pixa_);
27 bmfDestroy(&fonts_);
28 }
29
30 // Adds the given pix to the set of pages in the PDF file, with the given
31 // caption added to the top.
32 void AddPix(const Image pix, const char *caption) {
33 int depth = pixGetDepth(pix);
34 int color = depth < 8 ? 1 : (depth > 8 ? 0x00ff0000 : 0x80);
35 Image pix_debug =
36 pixAddSingleTextblock(pix, fonts_, caption, color, L_ADD_BELOW, nullptr);
37 pixaAddPix(pixa_, pix_debug, L_INSERT);
38 }
39
40 // Sets the destination filename and enables images to be written to a PDF
41 // on destruction.
42 void WritePDF(const char *filename) {
43 if (pixaGetCount(pixa_) > 0) {
44 pixaConvertToPdf(pixa_, 300, 1.0f, 0, 0, "AllDebugImages", filename);
45 pixaClear(pixa_);
46 }
47 }
48
49 private:
50 // The collection of images to put in the PDF.
51 Pixa *pixa_;
52 // The fonts used to draw text captions.
53 L_Bmf *fonts_;
54 };
55
56 } // namespace tesseract
57
58 #endif // TESSERACT_CCSTRUCT_DEBUGPIXA_H_