Coverage Report

Created: 2025-07-23 08:18

/work/include/GraphicsMagick/Magick++/Pixels.h
Line
Count
Source (jump to first uncovered line)
1
// This may look like C code, but it is really -*- C++ -*-
2
//
3
// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002
4
//
5
// Representation of a pixel view.
6
//
7
8
#if !defined(Magick_Pixels_header)
9
#define Magick_Pixels_header
10
11
#include "Magick++/Include.h"
12
#include "Magick++/Color.h"
13
#include "Magick++/Image.h"
14
15
namespace Magick
16
{
17
  class MagickDLLDecl Pixels
18
  {
19
  public:
20
21
    // Construct pixel view using specified image.
22
    Pixels( Magick::Image &image_ );
23
24
    // Destroy pixel view
25
    ~Pixels( void );
26
27
    // Transfer pixels from the image to the pixel view as defined by
28
    // the specified region. Modified pixels may be subsequently
29
    // transferred back to the image via sync.
30
    PixelPacket* get ( const int x_, const int y_,
31
                       const unsigned int columns_,const  unsigned int rows_ );
32
33
    // Transfer read-only pixels from the image to the pixel view as
34
    // defined by the specified region.
35
    const PixelPacket* getConst ( const int x_, const int y_,
36
                                  const unsigned int columns_,
37
                                  const unsigned int rows_ );
38
39
    // Transfers the image view pixels to the image.
40
    void sync ( void );
41
42
    // Allocate a pixel view region to store image pixels as defined
43
    // by the region rectangle.  This area is subsequently transferred
44
    // from the pixel view to the image via sync.
45
    PixelPacket* set ( const int x_, const int y_,
46
                       const unsigned int columns_, const unsigned int rows_ );
47
48
    // Return pixel colormap index array
49
    IndexPacket* indexes ( void );
50
51
    // Left ordinate of view
52
    int x ( void ) const;
53
54
    // Top ordinate of view
55
    int y ( void ) const;
56
57
    // Width of view
58
    unsigned int columns ( void ) const;
59
60
    // Height of view
61
    unsigned int rows ( void ) const;
62
63
#if 0
64
    // Transfer one or more pixel components from a buffer or file
65
    // into the image pixel view of an image.  Used to support image
66
    // decoders.
67
    void decode ( const QuantumType quantum_,
68
                  const unsigned char *source_ )
69
      {
70
        MagickLib::ReadPixelCache( _image.image(), quantum_, source_ );
71
      }
72
73
    // Transfer one or more pixel components from the image pixel
74
    // view to a buffer or file.  Used to support image encoders.
75
    void encode ( const QuantumType quantum_,
76
                  const unsigned char *destination_ )
77
      {
78
        MagickLib::WritePixelCache( _image.image(), quantum_, destination_ );
79
      }
80
#endif
81
  private:
82
83
    // Copying and assigning Pixels is not supported.
84
    Pixels( const Pixels& pixels_ );
85
    const Pixels& operator=( const Pixels& pixels_ );
86
87
    Magick::Image             _image;     // Image reference
88
    MagickLib::ViewInfo*      _view;      // Image view handle
89
    int                       _x;         // Left ordinate of view
90
    int                       _y;         // Top ordinate of view
91
    unsigned int              _columns;   // Width of view
92
    unsigned int              _rows;      // Height of view
93
    MagickLib:: ExceptionInfo _exception; // Any thrown exception
94
95
  }; // class Pixels
96
97
} // Magick namespace
98
99
//
100
// Inline methods
101
//
102
103
// Left ordinate of view
104
inline int Magick::Pixels::x ( void ) const
105
0
{
106
0
  return _x;
107
0
}
108
109
// Top ordinate of view
110
inline int Magick::Pixels::y ( void ) const
111
0
{
112
0
  return _y;
113
0
}
114
115
// Width of view
116
inline unsigned int Magick::Pixels::columns ( void ) const
117
0
{
118
0
  return _columns;
119
0
}
120
121
// Height of view
122
inline unsigned int Magick::Pixels::rows ( void ) const
123
0
{
124
0
  return _rows;
125
0
}
126
127
#endif // Magick_Pixels_header