Back to Imagemagick

Magick++: Pixels.h Source File

www/api/Magick++/Pixels_8h_source.html

7.1.2-217.8 KB
Original Source

| Magick++ 7.1.0 |

Pixels.h

Go to the documentation of this file.

1 // This may look like C code, but it is really -*- C++ -*-

2 //

3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002

4 //

5 // Copyright @ 2014 ImageMagick Studio LLC, a non-profit organization

6 // dedicated to making software imaging solutions freely available.

7 //

8 // Representation of a pixel view.

9 //

10

11 #if !defined(Magick_Pixels_header)

12 #define Magick_Pixels_header

13

14 #include "Magick++/Include.h"

15 #include "Magick++/Color.h"

16 #include "Magick++/Image.h"

17

18 namespace Magick

19 {

20class MagickPPExport Pixels

21 {

22public:

23

24// Construct pixel view using specified image.

25Pixels(Magick::Image &image_);

26

27// Destroy pixel view

28 ~Pixels(void);

29

30// Transfer pixels from the image to the pixel view as defined by

31// the specified region. Modified pixels may be subsequently

32// transferred back to the image via sync.

33 Quantum *get(const ::ssize_t x_,const ::ssize_t y_,

34const size_t columns_,const size_t rows_);

35

36// Transfer read-only pixels from the image to the pixel view as

37// defined by the specified region.

38const Quantum *getConst(const ::ssize_t x_,const ::ssize_t y_,

39const size_t columns_,const size_t rows_);

40

41// Return pixel metacontent

42void *metacontent(void);

43

44// Returns the offset for the specified channel.

45 ssize_t offset(PixelChannel channel) const;

46

47// Allocate a pixel view region to store image pixels as defined

48// by the region rectangle. This area is subsequently transferred

49// from the pixel view to the image via sync.

50 Quantum *set(const ::ssize_t x_,const ::ssize_t y_,const size_t columns_,

51const size_t rows_ );

52

53// Transfers the image view pixels to the image.

54void sync(void);

55

56// Left ordinate of view

57 ::ssize_t x(void) const;

58

59// Top ordinate of view

60 ::ssize_t y(void) const;

61

62// Width of view

63size_t columns(void) const;

64

65// Height of view

66size_t rows(void) const;

67

68private:

69

70// Copying and assigning Pixels is not supported.

71Pixels(const Pixels& pixels_);

72const Pixels& operator=(const Pixels& pixels_);

73

74Magick::Image _image; // Image reference

75 MagickCore::CacheView *_view; // Image view handle

76 ::ssize_t _x; // Left ordinate of view

77 ::ssize_t _y; // Top ordinate of view

78size_t _columns; // Width of view

79size_t _rows; // Height of view

80

81 }; // class Pixels

82

83class MagickPPExport PixelData

84 {

85public:

86

87// Construct pixel data using specified image

88PixelData(Magick::Image &image_,std::string map_,const StorageType type_);

89

90// Construct pixel data using specified image

91PixelData(Magick::Image &image_,const ::ssize_t x_,const ::ssize_t y_,

92const size_t width_,const size_t height_,std::string map_,

93const StorageType type_);

94

95// Destroy pixel data

96 ~PixelData(void);

97

98// Pixel data buffer

99const void *data(void) const;

100

101// Length of the buffer

102 ::ssize_t length(void) const;

103

104// Size of the buffer in bytes

105 ::ssize_t size(void) const;

106

107private:

108

109// Copying and assigning PixelData is not supported

110PixelData(const PixelData& pixels_);

111const PixelData& operator=(const PixelData& pixels_);

112

113void init(Magick::Image &image_,const ::ssize_t x_,const ::ssize_t y_,

114const size_t width_,const size_t height_,std::string map_,

115const StorageType type_);

116

117void relinquish(void) throw();

118

119void *_data; // The pixel data

120 ::ssize_t _length; // Length of the data

121 ::ssize_t _size; // Size of the data

122 }; // class PixelData

123

124 } // Magick namespace

125

126 //

127 // Inline methods

128 //

129

130 // Left ordinate of view

131 inline ::ssize_t Magick::Pixels::x(void) const

132 {

133return _x;

134 }

135

136 // Top ordinate of view

137 inline ::ssize_t Magick::Pixels::y(void) const

138 {

139return _y;

140 }

141

142 // Width of view

143 inline size_t Magick::Pixels::columns(void) const

144 {

145return _columns;

146 }

147

148 // Height of view

149 inline size_t Magick::Pixels::rows(void) const

150 {

151return _rows;

152 }

153

154 #endif // Magick_Pixels_header

Magick::PixelData

Definition: Pixels.h:83

Magick::Pixels::columns

size_t columns(void) const

Definition: Pixels.h:143

Magick::Pixels

Definition: Pixels.h:20

Image.h

Magick::Pixels::y

::ssize_t y(void) const

Definition: Pixels.h:137

MagickPPExport

#define MagickPPExport

Definition: Include.h:297

Magick::Pixels::x

::ssize_t x(void) const

Definition: Pixels.h:131

Color.h

Include.h

Magick::Pixels::rows

size_t rows(void) const

Definition: Pixels.h:149

Magick

Definition: Blob.h:17

Magick::Image

Definition: Image.h:55