Leptonica 1.85.0
Image processing and image analysis suite
Loading...
Searching...
No Matches
pix.h
Go to the documentation of this file.
1/*====================================================================*
2 - Copyright (C) 2001 Leptonica. All rights reserved.
3 -
4 - Redistribution and use in source and binary forms, with or without
5 - modification, are permitted provided that the following conditions
6 - are met:
7 - 1. Redistributions of source code must retain the above copyright
8 - notice, this list of conditions and the following disclaimer.
9 - 2. Redistributions in binary form must reproduce the above
10 - copyright notice, this list of conditions and the following
11 - disclaimer in the documentation and/or other materials
12 - provided with the distribution.
13 -
14 - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
15 - ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16 - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17 - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANY
18 - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 - OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
23 - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *====================================================================*/
26
27#ifndef LEPTONICA_PIX_H
28#define LEPTONICA_PIX_H
29
224/*-------------------------------------------------------------------------*
225 * Basic Pix *
226 *-------------------------------------------------------------------------*/
228typedef struct Pix PIX;
229
231typedef struct PixColormap PIXCMAP;
232
237typedef struct RGBA_Quad RGBA_QUAD;
238
239/*-------------------------------------------------------------------------*
240 * Pix arrays *
241 *-------------------------------------------------------------------------*/
243typedef struct Pixa PIXA;
244
246typedef struct Pixaa PIXAA;
247
248/*-------------------------------------------------------------------------*
249 * Basic rectangle and rectangle arrays *
250 *-------------------------------------------------------------------------*/
252typedef struct Box BOX;
253
255typedef struct Boxa BOXA;
256
258typedef struct Boxaa BOXAA;
259
260/*-------------------------------------------------------------------------*
261 * Arrays of points *
262 *-------------------------------------------------------------------------*/
264typedef struct Pta PTA;
265
267typedef struct Ptaa PTAA;
268
269/*-------------------------------------------------------------------------*
270 * Pix accumulator container *
271 *-------------------------------------------------------------------------*/
273typedef struct Pixacc PIXACC;
274
275/*-------------------------------------------------------------------------*
276 * Pix tiling *
277 *-------------------------------------------------------------------------*/
279typedef struct PixTiling PIXTILING;
280
281/*-------------------------------------------------------------------------*
282 * FPix: pix with float array *
283 *-------------------------------------------------------------------------*/
285typedef struct FPix FPIX;
286
288typedef struct FPixa FPIXA;
289
290/*-------------------------------------------------------------------------*
291 * DPix: pix with double array *
292 *-------------------------------------------------------------------------*/
294typedef struct DPix DPIX;
295
296/*-------------------------------------------------------------------------*
297 * Compressed pix and arrays *
298 *-------------------------------------------------------------------------*/
300typedef struct PixComp PIXC;
301
303typedef struct PixaComp PIXAC;
304
305
306
307/*-------------------------------------------------------------------------*
308 * Colors for 32 RGBA *
309 *-------------------------------------------------------------------------*/
310/* <pre>
311 * Notes:
312 * (1) These are the byte indices for colors in 32 bpp images.
313 * They are used through the GET/SET_DATA_BYTE accessors.
314 * The 4th byte, typically known as the "alpha channel" and used
315 * for blending, is used to a small extent in leptonica.
316 * (2) Do not change these values! If you redefine them, functions
317 * that have the shifts hardcoded for efficiency and conciseness
318 * (instead of using the constants below) will break. These
319 * functions are labelled with "***" next to their names at
320 * the top of the files in which they are defined.
321 * (3) The shifts to extract the red, green, blue and alpha components
322 * from a 32 bit pixel are defined here.
323 * </pre>
324 */
325
327enum {
331 L_ALPHA_CHANNEL = 3
333
334static const l_int32 L_RED_SHIFT =
335 8 * (sizeof(l_uint32) - 1 - COLOR_RED); /* 24 */
336static const l_int32 L_GREEN_SHIFT =
337 8 * (sizeof(l_uint32) - 1 - COLOR_GREEN); /* 16 */
338static const l_int32 L_BLUE_SHIFT =
339 8 * (sizeof(l_uint32) - 1 - COLOR_BLUE); /* 8 */
340static const l_int32 L_ALPHA_SHIFT =
341 8 * (sizeof(l_uint32) - 1 - L_ALPHA_CHANNEL); /* 0 */
342
343
344/*-------------------------------------------------------------------------*
345 * Colors for drawing boxes *
346 *-------------------------------------------------------------------------*/
348enum {
354 L_DRAW_RANDOM = 5
356
357
358/*-------------------------------------------------------------------------*
359 * Perceptual color weights *
360 *-------------------------------------------------------------------------*/
361/* <pre>
362 * Notes:
363 * (1) These perceptual weighting factors are ad-hoc, but they do
364 * add up to 1. Unlike, for example, the weighting factors for
365 * converting RGB to luminance, or more specifically to Y in the
366 * YUV colorspace. Those numbers come from the
367 * International Telecommunications Union, via ITU-R.
368 * </pre>
369 */
370static const l_float32 L_RED_WEIGHT = 0.3f;
371static const l_float32 L_GREEN_WEIGHT = 0.5f;
372static const l_float32 L_BLUE_WEIGHT = 0.2f;
375/*-------------------------------------------------------------------------*
376 * Flags for colormap conversion *
377 *-------------------------------------------------------------------------*/
379enum {
386
387
388/*------------------------------------------------------------------------*
389 *!
390 * <pre>
391 * The following operation bit flags have been modified from Sun's
392 * original "bitblt" (bit block transfer) operations (from the 1980s).
393 *
394 * The 'op' in 'rasterop' is represented by an integer
395 * composed with Boolean functions using the set of five integers
396 * given below. The integers, and the op codes resulting from
397 * boolean expressions on them, need only be in the range from 0 to 15.
398 * The function is applied on a per-pixel basis.
399 *
400 * Examples: the op code representing ORing the src and dest
401 * is computed using the bit OR, as PIX_SRC | PIX_DST; the op
402 * code representing XORing src and dest is found from
403 * PIX_SRC ^ PIX_DST; the op code representing ANDing src and dest
404 * is found from PIX_SRC & PIX_DST. Note that
405 * PIX_NOT(PIX_CLR) = PIX_SET, and v.v., as they must be.
406 *
407 * We use the following set of definitions:
408 *
409 * #define PIX_SRC 0xc
410 * #define PIX_DST 0xa
411 * #define PIX_NOT(op) (op) ^ 0xf
412 * #define PIX_CLR 0x0
413 * #define PIX_SET 0xf
414 *
415 * [These definitions differ from Sun's, in that Sun left-shifted
416 * each value by 1 pixel, and used the least significant bit as a
417 * flag for the "pseudo-operation" of clipping. We don't need
418 * this bit, because it is both efficient and safe ALWAYS to clip
419 * the rectangles to the src and dest images, which is what we do.
420 * See the notes in rop.h on the general choice of these bit flags.]
421 *
422 * Here are the 16 unique op flags:
423 *
424 * PIX_CLR 0000 0x0
425 * PIX_SET 1111 0xf
426 * PIX_SRC 1100 0xc
427 * PIX_DST 1010 0xa
428 * PIX_NOT(PIX_SRC) 0011 0x3
429 * PIX_NOT(PIX_DST) 0101 0x5
430 * PIX_SRC | PIX_DST 1110 0xe
431 * PIX_SRC & PIX_DST 1000 0x8
432 * PIX_SRC ^ PIX_DST 0110 0x6
433 * PIX_NOT(PIX_SRC) | PIX_DST 1011 0xb
434 * PIX_NOT(PIX_SRC) & PIX_DST 0010 0x2
435 * PIX_SRC | PIX_NOT(PIX_DST) 1101 0xd
436 * PIX_SRC & PIX_NOT(PIX_DST) 0100 0x4
437 * PIX_NOT(PIX_SRC | PIX_DST) 0001 0x1
438 * PIX_NOT(PIX_SRC & PIX_DST) 0111 0x7
439 * PIX_NOT(PIX_SRC ^ PIX_DST) 1001 0x9
440 *
441 * </pre>
442 *-------------------------------------------------------------------------*/
443
444#define PIX_SRC (0xc)
445#define PIX_DST (0xa)
446#define PIX_NOT(op) ((op) ^ 0x0f)
447#define PIX_CLR (0x0)
448#define PIX_SET (0xf)
450#define PIX_PAINT (PIX_SRC | PIX_DST)
451#define PIX_MASK (PIX_SRC & PIX_DST)
452#define PIX_SUBTRACT (PIX_DST & PIX_NOT(PIX_SRC))
454#define PIX_XOR (PIX_SRC ^ PIX_DST)
457/*-------------------------------------------------------------------------*
458 * Access and storage flags *
459 *-------------------------------------------------------------------------*/
460/*
461 * <pre>
462 * For Pix, Box, Pta and Numa, there are 3 standard methods for handling
463 * the retrieval or insertion of a struct:
464 * (1) direct insertion (Don't do this if there is another handle
465 * somewhere to this same struct!)
466 * (2) copy (Always safe, sets up a refcount of 1 on the new object.
467 * Can be undesirable if very large, such as an image or
468 * an array of images.)
469 * (3) clone (Makes another handle to the same struct, and bumps the
470 * refcount up by 1. OK to use except in two situations:
471 * (a) You change data through one of the handles but don't
472 * want those changes to be seen by the other handle.
473 * (b) The application is multi-threaded. Because the clone
474 * operation is not atomic (e.g., locked with a mutex),
475 * it is possible to end up with an incorrect ref count,
476 * causing either a memory leak or a crash.
477 *
478 * For Pixa and Boxa, which are structs that hold an array of clonable
479 * structs, there is an additional method:
480 * (4) copy-clone (Makes a new higher-level struct with a refcount
481 * of 1, but clones all the structs in the array.)
482 *
483 * Unlike the other structs, when retrieving a string from an Sarray,
484 * you are allowed to get a handle without a copy or clone (i.e., the
485 * string is not owned by the handle). You must not either free the string
486 * or insert it in some other struct that would own it. Specifically,
487 * for an Sarray, the copyflag for retrieval is either:
488 * L_COPY or L_NOCOPY
489 * and for insertion, the copyflag is either:
490 * L_COPY or one of {L_INSERT , L_NOCOPY} (the latter are equivalent
491 * for insertion))
492 * Typical patterns are:
493 * (1) Reference a string in an Sarray with L_NOCOPY and insert a copy
494 * of it in another Sarray with L_COPY.
495 * (2) Copy a string from an Sarray with L_COPY and insert it in
496 * another Sarray with L_INSERT (or L_NOCOPY).
497 * In both cases, a copy is made and both Sarrays own their instance
498 * of that string.
499 * </pre>
500 */
502enum {
505 L_COPY = 1,
507 L_COPY_CLONE = 3
510
511/*----------------------------------------------------------------------------*
512 * Sort flags *
513 *----------------------------------------------------------------------------*/
515enum {
517 L_BIN_SORT = 2
519
521enum {
525
527enum {
540
541/*---------------------------------------------------------------------------*
542 * Blend flags *
543 *---------------------------------------------------------------------------*/
545enum {
553
555enum {
557 L_PAINT_DARK = 2
559
560/*-------------------------------------------------------------------------*
561 * Graphics pixel setting *
562 *-------------------------------------------------------------------------*/
564enum {
567 L_FLIP_PIXELS = 3
569
570/*-------------------------------------------------------------------------*
571 * Size and location filter flags *
572 *-------------------------------------------------------------------------*/
574enum {
578 L_SELECT_IF_GTE = 4
580
582enum {
590
592enum {
602
604enum {
607 L_CHECK_BOTH = 3
609
610/*-------------------------------------------------------------------------*
611 * Color component selection flags *
612 *-------------------------------------------------------------------------*/
614enum {
625
626/*-------------------------------------------------------------------------*
627 * Color content flags *
628 *-------------------------------------------------------------------------*/
630enum {
633 L_MAX_DIFF = 3
635
636/*-------------------------------------------------------------------------*
637 * 16-bit conversion flags *
638 *-------------------------------------------------------------------------*/
640enum {
647 L_CLIP_TO_FFFF = 7
649
650/*-------------------------------------------------------------------------*
651 * Rotate and shear flags *
652 *-------------------------------------------------------------------------*/
654enum {
659
661enum {
665
667enum {
671
672/*-------------------------------------------------------------------------*
673 * Affine transform order flags *
674 *-------------------------------------------------------------------------*/
676enum {
682 L_SC_TR_RO = 6
684
685/*-------------------------------------------------------------------------*
686 * Grayscale filling flags *
687 *-------------------------------------------------------------------------*/
689enum {
691 L_FILL_BLACK = 2
693
694/*-------------------------------------------------------------------------*
695 * Flags for setting to white or black *
696 *-------------------------------------------------------------------------*/
698enum {
700 L_SET_BLACK = 2
702
703/*-------------------------------------------------------------------------*
704 * Flags for getting white or black value *
705 *-------------------------------------------------------------------------*/
707enum {
709 L_GET_BLACK_VAL = 2
711
712/*-------------------------------------------------------------------------*
713 * Flags for 8 bit and 16 bit pixel sums *
714 *-------------------------------------------------------------------------*/
716enum {
718 L_BLACK_IS_MAX = 2
720
721/*-------------------------------------------------------------------------*
722 * Dither parameters *
723 * If within this grayscale distance from black or white, *
724 * do not propagate excess or deficit to neighboring pixels. *
725 *-------------------------------------------------------------------------*/
727enum {
733
734/*-------------------------------------------------------------------------*
735 * Distance type flags *
736 *-------------------------------------------------------------------------*/
738enum {
742
743/*-------------------------------------------------------------------------*
744 * Distance Value flags *
745 *-------------------------------------------------------------------------*/
747enum {
752 L_ZERO = 5,
753 L_ALL = 6
755
756/*-------------------------------------------------------------------------*
757 * Statistical measures *
758 *-------------------------------------------------------------------------*/
760enum {
767 L_VARIANCE = 7
769
770/*-------------------------------------------------------------------------*
771 * Set index selection flags *
772 *-------------------------------------------------------------------------*/
774enum {
778
779/*-------------------------------------------------------------------------*
780 * Text orientation flags *
781 *-------------------------------------------------------------------------*/
783enum {
790
791/*-------------------------------------------------------------------------*
792 * Edge orientation flags *
793 *-------------------------------------------------------------------------*/
795enum {
798 L_ALL_EDGES = 2
800
801/*-------------------------------------------------------------------------*
802 * Line orientation flags *
803 *-------------------------------------------------------------------------*/
805enum {
810 L_OBLIQUE_LINE = 4
812
813/*-------------------------------------------------------------------------*
814 * Image orientation flags *
815 *-------------------------------------------------------------------------*/
817enum {
821
822/*-------------------------------------------------------------------------*
823 * Scan direction flags *
824 *-------------------------------------------------------------------------*/
826enum {
835 L_SCAN_VERTICAL = 8
837
838/*-------------------------------------------------------------------------*
839 * Box size adjustment and location flags *
840 *-------------------------------------------------------------------------*/
842enum {
859 L_GET_BOT = 16
861
862/*-------------------------------------------------------------------------*
863 * Flags for modifying box boundaries using a second box *
864 *-------------------------------------------------------------------------*/
866enum {
874
875/*-------------------------------------------------------------------------*
876 * Handling overlapping bounding boxes in boxa *
877 *-------------------------------------------------------------------------*/
879enum {
881 L_REMOVE_SMALL = 2
883
884/*-------------------------------------------------------------------------*
885 * Selecting or making a box from two (intersecting) boxes *
886 *-------------------------------------------------------------------------*/
888enum {
892 L_SMALLEST_AREA = 4
894
895/*-------------------------------------------------------------------------*
896 * Flags for replacing invalid boxes *
897 *-------------------------------------------------------------------------*/
899enum {
903
904/*-------------------------------------------------------------------------*
905 * Flags for box corners and center *
906 *-------------------------------------------------------------------------*/
908enum {
913 L_BOX_CENTER = 5
915
916/*-------------------------------------------------------------------------*
917 * Horizontal warp *
918 *-------------------------------------------------------------------------*/
920enum {
922 L_WARP_TO_RIGHT = 2
924
926enum {
930
931/*-------------------------------------------------------------------------*
932 * Pixel selection for resampling *
933 *-------------------------------------------------------------------------*/
935enum {
937 L_SAMPLED = 2
939
940/*-------------------------------------------------------------------------*
941 * Thinning flags *
942 *-------------------------------------------------------------------------*/
944enum {
946 L_THIN_BG = 2
948
949/*-------------------------------------------------------------------------*
950 * Runlength flags *
951 *-------------------------------------------------------------------------*/
953enum {
955 L_VERTICAL_RUNS = 1
957
958/*-------------------------------------------------------------------------*
959 * Edge filter flags *
960 *-------------------------------------------------------------------------*/
962enum {
966
967/*-------------------------------------------------------------------------*
968 * Subpixel color component ordering in LCD display *
969 *-------------------------------------------------------------------------*/
971enum {
977
978/*-------------------------------------------------------------------------*
979 * HSV histogram flags *
980 *-------------------------------------------------------------------------*/
982enum {
985 L_SV_HISTO = 3
987
988/*-------------------------------------------------------------------------*
989 * HSV Region flags (inclusion, exclusion) *
990 *-------------------------------------------------------------------------*/
992enum {
996
997/*-------------------------------------------------------------------------*
998 * Location flags for adding text to a pix *
999 *-------------------------------------------------------------------------*/
1001enum {
1009 L_ADD_AT_RIGHT = 8
1011
1012/*-------------------------------------------------------------------------*
1013 * Flags for plotting on a pix *
1014 *-------------------------------------------------------------------------*/
1016enum {
1022 L_PLOT_AT_RIGHT = 6
1024
1025/*-------------------------------------------------------------------------*
1026 * Flags for making simple masks *
1027 *-------------------------------------------------------------------------*/
1029enum {
1031 L_USE_OUTER = 2
1033
1034/*-------------------------------------------------------------------------*
1035 * Flags for selecting display program *
1036 *-------------------------------------------------------------------------*/
1038enum {
1046
1047/*-------------------------------------------------------------------------*
1048 * Flag(s) used in the 'special' pix field for non-default operations *
1049 * - 0 is default for chroma sampling in jpeg *
1050 * - 10-19 are used for zlib compression in png write *
1051 * - 4 and 8 are used for specifying connectivity in labelling *
1052 *-------------------------------------------------------------------------*/
1054enum {
1057
1058/*-------------------------------------------------------------------------*
1059 * Handling negative values in conversion to unsigned int *
1060 *-------------------------------------------------------------------------*/
1062enum {
1064 L_TAKE_ABSVAL = 2
1066
1067/*-------------------------------------------------------------------------*
1068 * Relative to zero flags *
1069 *-------------------------------------------------------------------------*/
1071enum {
1076
1077/*-------------------------------------------------------------------------*
1078 * Flags for adding or removing trailing slash from string *
1079 *-------------------------------------------------------------------------*/
1081enum {
1085
1086/*-------------------------------------------------------------------------*
1087 * Pix allocator and deallocator function types *
1088 *-------------------------------------------------------------------------*/
1090typedef void *(*alloc_fn)(size_t);
1091
1093typedef void (*dealloc_fn)(void *);
1094
1095#endif /* LEPTONICA_PIX_H */
static const l_float32 L_BLUE_WEIGHT
Definition pix.h:372
@ L_DRAW_RANDOM
Definition pix.h:354
@ L_DRAW_RED
Definition pix.h:349
@ L_DRAW_RGB
Definition pix.h:353
@ L_DRAW_BLUE
Definition pix.h:351
@ L_DRAW_GREEN
Definition pix.h:350
@ L_DRAW_SPECIFIED
Definition pix.h:352
void(* dealloc_fn)(void *)
Definition pix.h:1093
@ COLOR_BLUE
Definition pix.h:330
@ COLOR_RED
Definition pix.h:328
@ L_ALPHA_CHANNEL
Definition pix.h:331
@ COLOR_GREEN
Definition pix.h:329
@ L_USE_SAME_PARITY_BOXES
Definition pix.h:901
@ L_USE_ALL_BOXES
Definition pix.h:900
@ L_SELECT_MAX
Definition pix.h:619
@ L_SELECT_GREEN
Definition pix.h:616
@ L_SELECT_SATURATION
Definition pix.h:622
@ L_SELECT_BLUE
Definition pix.h:617
@ L_SELECT_AVERAGE
Definition pix.h:620
@ L_SELECT_MIN
Definition pix.h:618
@ L_SELECT_HUE
Definition pix.h:621
@ L_SELECT_WEIGHTED
Definition pix.h:623
@ L_SELECT_RED
Definition pix.h:615
@ L_FLIP_PIXELS
Definition pix.h:567
@ L_SET_PIXELS
Definition pix.h:565
@ L_CLEAR_PIXELS
Definition pix.h:566
@ L_HS_HISTO
Definition pix.h:983
@ L_SV_HISTO
Definition pix.h:985
@ L_HV_HISTO
Definition pix.h:984
@ DEFAULT_CLIP_UPPER_2
Definition pix.h:731
@ DEFAULT_CLIP_LOWER_1
Definition pix.h:728
@ DEFAULT_CLIP_LOWER_2
Definition pix.h:730
@ DEFAULT_CLIP_UPPER_1
Definition pix.h:729
@ L_BLEND_GRAY
Definition pix.h:549
@ L_BLEND_TO_WHITE
Definition pix.h:547
@ L_BLEND_WITH_INVERSE
Definition pix.h:546
@ L_BLEND_TO_BLACK
Definition pix.h:548
@ L_BLEND_GRAY_WITH_INVERSE
Definition pix.h:550
@ L_MAX_DIFF
Definition pix.h:633
@ L_INTERMED_DIFF
Definition pix.h:631
@ L_AVE_MAX_DIFF_2
Definition pix.h:632
@ L_SELECT_IF_LTE
Definition pix.h:577
@ L_SELECT_IF_LT
Definition pix.h:575
@ L_SELECT_IF_GT
Definition pix.h:576
@ L_SELECT_IF_GTE
Definition pix.h:578
@ L_POS_SLOPE_LINE
Definition pix.h:807
@ L_HORIZONTAL_LINE
Definition pix.h:806
@ L_OBLIQUE_LINE
Definition pix.h:810
@ L_NEG_SLOPE_LINE
Definition pix.h:809
@ L_VERTICAL_LINE
Definition pix.h:808
static const l_float32 L_RED_WEIGHT
Definition pix.h:370
@ L_SELECT_IF_BOTH
Definition pix.h:599
@ L_SELECT_IF_EITHER
Definition pix.h:597
@ L_SELECT_WIDTH
Definition pix.h:593
@ L_SELECT_XVAL
Definition pix.h:595
@ L_SELECT_HEIGHT
Definition pix.h:594
@ L_SELECT_YVAL
Definition pix.h:596
@ L_USE_INNER
Definition pix.h:1030
@ L_USE_OUTER
Definition pix.h:1031
@ L_SORT_BY_AREA
Definition pix.h:537
@ L_SORT_BY_MIN_DIMENSION
Definition pix.h:534
@ L_SORT_BY_PERIMETER
Definition pix.h:536
@ L_SORT_BY_WIDTH
Definition pix.h:532
@ L_SORT_BY_RIGHT
Definition pix.h:530
@ L_SORT_BY_BOT
Definition pix.h:531
@ L_SORT_BY_ASPECT_RATIO
Definition pix.h:538
@ L_SORT_BY_HEIGHT
Definition pix.h:533
@ L_SORT_BY_MAX_DIMENSION
Definition pix.h:535
@ L_SORT_BY_Y
Definition pix.h:529
@ L_SORT_BY_X
Definition pix.h:528
@ REMOVE_CMAP_TO_FULL_COLOR
Definition pix.h:382
@ REMOVE_CMAP_TO_GRAYSCALE
Definition pix.h:381
@ REMOVE_CMAP_WITH_ALPHA
Definition pix.h:383
@ REMOVE_CMAP_BASED_ON_SRC
Definition pix.h:384
@ REMOVE_CMAP_TO_BINARY
Definition pix.h:380
@ L_ADD_AT_BOT
Definition pix.h:1007
@ L_ADD_LEFT
Definition pix.h:1004
@ L_ADD_AT_LEFT
Definition pix.h:1008
@ L_ADD_BELOW
Definition pix.h:1003
@ L_ADD_AT_TOP
Definition pix.h:1006
@ L_ADD_ABOVE
Definition pix.h:1002
@ L_ADD_RIGHT
Definition pix.h:1005
@ L_ADD_AT_RIGHT
Definition pix.h:1009
@ L_COPY
Definition pix.h:505
@ L_CLONE
Definition pix.h:506
@ L_COPY_CLONE
Definition pix.h:507
@ L_NOCOPY
Definition pix.h:503
@ L_INSERT
Definition pix.h:504
@ L_PORTRAIT_MODE
Definition pix.h:818
@ L_LANDSCAPE_MODE
Definition pix.h:819
@ L_UPPER_RIGHT
Definition pix.h:910
@ L_LOWER_RIGHT
Definition pix.h:912
@ L_UPPER_LEFT
Definition pix.h:909
@ L_BOX_CENTER
Definition pix.h:913
@ L_LOWER_LEFT
Definition pix.h:911
@ L_CHOOSE_CONSECUTIVE
Definition pix.h:775
@ L_CHOOSE_SKIP_BY
Definition pix.h:776
@ L_NO_CHROMA_SAMPLING_JPEG
Definition pix.h:1055
@ L_LINEAR_WARP
Definition pix.h:927
@ L_QUADRATIC_WARP
Definition pix.h:928
@ L_EXCLUDE_REGION
Definition pix.h:994
@ L_INCLUDE_REGION
Definition pix.h:993
@ L_PAINT_LIGHT
Definition pix.h:556
@ L_PAINT_DARK
Definition pix.h:557
@ L_VERTICAL_RUNS
Definition pix.h:955
@ L_HORIZONTAL_RUNS
Definition pix.h:954
@ L_TWO_SIDED_EDGE
Definition pix.h:964
@ L_SOBEL_EDGE
Definition pix.h:963
@ L_SET_WHITE
Definition pix.h:699
@ L_SET_BLACK
Definition pix.h:700
@ L_WARP_TO_RIGHT
Definition pix.h:922
@ L_WARP_TO_LEFT
Definition pix.h:921
@ L_CLIP_TO_FFFF
Definition pix.h:647
@ L_MS_TWO_BYTES
Definition pix.h:646
@ L_CLIP_TO_FF
Definition pix.h:644
@ L_LS_TWO_BYTES
Definition pix.h:645
@ L_MS_BYTE
Definition pix.h:642
@ L_AUTO_BYTE
Definition pix.h:643
@ L_LS_BYTE
Definition pix.h:641
@ L_ADJUST_CHOOSE_MAX
Definition pix.h:851
@ L_SET_RIGHT
Definition pix.h:853
@ L_GET_LEFT
Definition pix.h:856
@ L_SET_LEFT
Definition pix.h:852
@ L_ADJUST_LEFT
Definition pix.h:844
@ L_SET_BOT
Definition pix.h:855
@ L_ADJUST_LEFT_AND_RIGHT
Definition pix.h:846
@ L_ADJUST_RIGHT
Definition pix.h:845
@ L_ADJUST_BOT
Definition pix.h:848
@ L_GET_RIGHT
Definition pix.h:857
@ L_ADJUST_TOP
Definition pix.h:847
@ L_ADJUST_SKIP
Definition pix.h:843
@ L_SET_TOP
Definition pix.h:854
@ L_GET_TOP
Definition pix.h:858
@ L_ADJUST_TOP_AND_BOT
Definition pix.h:849
@ L_ADJUST_CHOOSE_MIN
Definition pix.h:850
@ L_GET_BOT
Definition pix.h:859
@ L_BLACK_IS_MAX
Definition pix.h:718
@ L_WHITE_IS_MAX
Definition pix.h:717
@ L_FROM_BOT
Definition pix.h:830
@ L_FROM_LEFT
Definition pix.h:827
@ L_SCAN_NEGATIVE
Definition pix.h:831
@ L_SCAN_VERTICAL
Definition pix.h:835
@ L_SCAN_BOTH
Definition pix.h:833
@ L_SCAN_HORIZONTAL
Definition pix.h:834
@ L_FROM_RIGHT
Definition pix.h:828
@ L_SCAN_POSITIVE
Definition pix.h:832
@ L_FROM_TOP
Definition pix.h:829
@ L_ADD_TRAIL_SLASH
Definition pix.h:1082
@ L_REMOVE_TRAIL_SLASH
Definition pix.h:1083
@ L_BIN_SORT
Definition pix.h:517
@ L_SHELL_SORT
Definition pix.h:516
@ L_REMOVE_SMALL
Definition pix.h:881
@ L_COMBINE
Definition pix.h:880
@ L_TEXT_ORIENT_DOWN
Definition pix.h:787
@ L_TEXT_ORIENT_UP
Definition pix.h:785
@ L_TEXT_ORIENT_LEFT
Definition pix.h:786
@ L_TEXT_ORIENT_RIGHT
Definition pix.h:788
@ L_TEXT_ORIENT_UNKNOWN
Definition pix.h:784
@ L_PLOT_AT_BOT
Definition pix.h:1019
@ L_PLOT_AT_LEFT
Definition pix.h:1020
@ L_PLOT_AT_MID_VERT
Definition pix.h:1021
@ L_PLOT_AT_MID_HORIZ
Definition pix.h:1018
@ L_PLOT_AT_TOP
Definition pix.h:1017
@ L_PLOT_AT_RIGHT
Definition pix.h:1022
@ L_DISPLAY_WITH_NONE
Definition pix.h:1039
@ L_DISPLAY_WITH_XV
Definition pix.h:1042
@ L_DISPLAY_WITH_XZGV
Definition pix.h:1040
@ L_DISPLAY_WITH_XLI
Definition pix.h:1041
@ L_DISPLAY_WITH_OPEN
Definition pix.h:1044
@ L_DISPLAY_WITH_IV
Definition pix.h:1043
@ L_INTERPOLATED
Definition pix.h:936
@ L_SAMPLED
Definition pix.h:937
@ L_CLIP_TO_ZERO
Definition pix.h:1063
@ L_TAKE_ABSVAL
Definition pix.h:1064
@ L_SORT_DECREASING
Definition pix.h:523
@ L_SORT_INCREASING
Definition pix.h:522
@ L_SUBPIXEL_ORDER_VRGB
Definition pix.h:974
@ L_SUBPIXEL_ORDER_BGR
Definition pix.h:973
@ L_SUBPIXEL_ORDER_RGB
Definition pix.h:972
@ L_SUBPIXEL_ORDER_VBGR
Definition pix.h:975
@ L_CHECK_BOTH
Definition pix.h:607
@ L_CHECK_WIDTH
Definition pix.h:605
@ L_CHECK_HEIGHT
Definition pix.h:606
@ L_EUCLIDEAN_DISTANCE
Definition pix.h:740
@ L_MANHATTAN_DISTANCE
Definition pix.h:739
@ L_THIN_BG
Definition pix.h:946
@ L_THIN_FG
Definition pix.h:945
@ L_USE_MINSIZE
Definition pix.h:867
@ L_SUB_ON_LOC_DIFF
Definition pix.h:869
@ L_USE_CAPPED_MIN
Definition pix.h:871
@ L_USE_CAPPED_MAX
Definition pix.h:872
@ L_USE_MAXSIZE
Definition pix.h:868
@ L_SUB_ON_SIZE_DIFF
Definition pix.h:870
@ L_EQUAL_TO_ZERO
Definition pix.h:1073
@ L_LESS_THAN_ZERO
Definition pix.h:1072
@ L_GREATER_THAN_ZERO
Definition pix.h:1074
@ L_MODE_VAL
Definition pix.h:763
@ L_ROOT_MEAN_SQUARE
Definition pix.h:765
@ L_MODE_COUNT
Definition pix.h:764
@ L_MEAN_ABSVAL
Definition pix.h:761
@ L_VARIANCE
Definition pix.h:767
@ L_STANDARD_DEVIATION
Definition pix.h:766
@ L_MEDIAN_VAL
Definition pix.h:762
@ L_BRING_IN_BLACK
Definition pix.h:663
@ L_BRING_IN_WHITE
Definition pix.h:662
@ L_GEOMETRIC_UNION
Definition pix.h:889
@ L_SMALLEST_AREA
Definition pix.h:892
@ L_LARGEST_AREA
Definition pix.h:891
@ L_GEOMETRIC_INTERSECTION
Definition pix.h:890
@ L_GET_BLACK_VAL
Definition pix.h:709
@ L_GET_WHITE_VAL
Definition pix.h:708
@ L_ROTATE_SAMPLING
Definition pix.h:657
@ L_ROTATE_SHEAR
Definition pix.h:656
@ L_ROTATE_AREA_MAP
Definition pix.h:655
@ L_SHEAR_ABOUT_CORNER
Definition pix.h:668
@ L_SHEAR_ABOUT_CENTER
Definition pix.h:669
@ L_ALL_EDGES
Definition pix.h:798
@ L_VERTICAL_EDGES
Definition pix.h:797
@ L_HORIZONTAL_EDGES
Definition pix.h:796
static const l_float32 L_GREEN_WEIGHT
Definition pix.h:371
@ L_SELECT_BY_HEIGHT
Definition pix.h:584
@ L_SELECT_BY_AREA
Definition pix.h:587
@ L_SELECT_BY_PERIMETER
Definition pix.h:588
@ L_SELECT_BY_WIDTH
Definition pix.h:583
@ L_SELECT_BY_MAX_DIMENSION
Definition pix.h:585
@ L_NON_NEGATIVE
Definition pix.h:749
@ L_ZERO
Definition pix.h:752
@ L_NEGATIVE
Definition pix.h:748
@ L_ALL
Definition pix.h:753
@ L_POSITIVE
Definition pix.h:750
@ L_NON_POSITIVE
Definition pix.h:751
@ L_RO_TR_SC
Definition pix.h:679
@ L_TR_RO_SC
Definition pix.h:680
@ L_SC_RO_TR
Definition pix.h:678
@ L_TR_SC_RO
Definition pix.h:677
@ L_SC_TR_RO
Definition pix.h:682
@ L_RO_SC_TR
Definition pix.h:681
@ L_FILL_WHITE
Definition pix.h:690
@ L_FILL_BLACK
Definition pix.h:691