Krita Source Code Documentation
Loading...
Searching...
No Matches
ImageView Class Reference
+ Inheritance diagram for ImageView:

Public Member Functions

quint8 * data (void) const
 
void DebugDump (const QString &fnamePrefix)
 
 ImageView ()
 
 ImageView (quint8 *_data, int _imageWidth, int _imageHeight, int _pixelSize)
 
void Init (quint8 *_data, int _imageWidth, int _imageHeight, int _pixelSize)
 
int num_bytes (void) const
 
int num_elements (void) const
 
quint8 * operator() (int x, int y) const
 
ImageViewoperator= (const ImageView &other)
 
ImageViewoperator= (ImageView &&other) noexcept
 
int pixel_size (void) const
 
void saveToDevice (KisPaintDeviceSP outDev, QRect rect)
 
virtual ~ImageView ()
 

Protected Attributes

quint8 * m_data {nullptr}
 
int m_imageHeight {0}
 
int m_imageWidth {0}
 
int m_pixelSize {0}
 

Detailed Description

Definition at line 52 of file kis_inpaint.cpp.

Constructor & Destructor Documentation

◆ ImageView() [1/2]

ImageView::ImageView ( )
inline

Definition at line 70 of file kis_inpaint.cpp.

70 : m_data(nullptr)
71
72 {
74 }
int m_imageHeight
quint8 * m_data

References m_imageHeight, m_imageWidth, and m_pixelSize.

◆ ImageView() [2/2]

ImageView::ImageView ( quint8 * _data,
int _imageWidth,
int _imageHeight,
int _pixelSize )
inline

Definition at line 77 of file kis_inpaint.cpp.

78 {
79 Init(_data, _imageWidth, _imageHeight, _pixelSize);
80 }
void Init(quint8 *_data, int _imageWidth, int _imageHeight, int _pixelSize)

References Init().

◆ ~ImageView()

virtual ImageView::~ImageView ( )
inlinevirtual

Definition at line 118 of file kis_inpaint.cpp.

118{} //this class doesn't own m_data, so it ain't going to delete it either.

Member Function Documentation

◆ data()

quint8 * ImageView::data ( void ) const
inline

Definition at line 120 of file kis_inpaint.cpp.

121 {
122 return m_data;
123 }

References m_data.

◆ DebugDump()

void ImageView::DebugDump ( const QString & fnamePrefix)
inline

Definition at line 146 of file kis_inpaint.cpp.

147 {
148 QRect imSize(QPoint(0, 0), QSize(m_imageWidth, m_imageHeight));
149 const KoColorSpace* cs = (m_pixelSize == 1) ?
151 KoColorSpaceRegistry::instance()->colorSpace("RGBA", "U8", "");
152 KisPaintDeviceSP dbout = new KisPaintDevice(cs);
153 saveToDevice(dbout, imSize);
154 KIS_DUMP_DEVICE_2(dbout, imSize, fnamePrefix, "./");
155 }
void saveToDevice(KisPaintDeviceSP outDev, QRect rect)
#define KIS_DUMP_DEVICE_2(device, rc, suffix, prefix)
const KoColorSpace * colorSpace(const QString &colorModelId, const QString &colorDepthId, const KoColorProfile *profile)
static KoColorSpaceRegistry * instance()
const KoColorSpace * alpha8()

References KoColorSpaceRegistry::alpha8(), KoColorSpaceRegistry::colorSpace(), KoColorSpaceRegistry::instance(), KIS_DUMP_DEVICE_2, m_imageHeight, m_imageWidth, m_pixelSize, and saveToDevice().

◆ Init()

void ImageView::Init ( quint8 * _data,
int _imageWidth,
int _imageHeight,
int _pixelSize )
inline

Definition at line 62 of file kis_inpaint.cpp.

63 {
64 m_data = _data;
65 m_imageWidth = _imageWidth;
66 m_imageHeight = _imageHeight;
67 m_pixelSize = _pixelSize;
68 }

References m_data, m_imageHeight, m_imageWidth, and m_pixelSize.

◆ num_bytes()

int ImageView::num_bytes ( void ) const
inline

Definition at line 130 of file kis_inpaint.cpp.

131 {
133 }

References m_imageHeight, m_imageWidth, and m_pixelSize.

◆ num_elements()

int ImageView::num_elements ( void ) const
inline

Definition at line 125 of file kis_inpaint.cpp.

126 {
128 }

References m_imageHeight, and m_imageWidth.

◆ operator()()

quint8 * ImageView::operator() ( int x,
int y ) const
inline

Definition at line 82 of file kis_inpaint.cpp.

83 {
84 Q_ASSERT(m_data);
85 Q_ASSERT((x >= 0) && (x < m_imageWidth) && (y >= 0) && (y < m_imageHeight));
86 return (m_data + x * m_pixelSize + y * m_imageWidth * m_pixelSize);
87 }

References m_data, m_imageHeight, m_imageWidth, and m_pixelSize.

◆ operator=() [1/2]

ImageView & ImageView::operator= ( const ImageView & other)
inline

Definition at line 89 of file kis_inpaint.cpp.

90 {
91 if (this != &other) {
92 if (other.num_bytes() != num_bytes()) {
93 delete[] m_data;
94 m_data = nullptr; //to preserve invariance if next line throws exception
95 m_data = new quint8[other.num_bytes()];
96
97 }
98 std::copy(other.data(), other.data() + other.num_bytes(), m_data);
101 m_pixelSize = other.m_pixelSize;
102 }
103 return *this;
104 }
quint8 * data(void) const
int num_bytes(void) const

References data(), m_data, m_imageHeight, m_imageWidth, m_pixelSize, and num_bytes().

◆ operator=() [2/2]

ImageView & ImageView::operator= ( ImageView && other)
inlinenoexcept

Definition at line 107 of file kis_inpaint.cpp.

108 {
109 if (this != &other) {
110 delete[] m_data;
111 m_data = nullptr;
112 Init(other.data(), other.m_imageWidth, other.m_imageHeight, other.m_pixelSize);
113 other.m_data = nullptr;
114 }
115 return *this;
116 }

References Init(), and m_data.

◆ pixel_size()

int ImageView::pixel_size ( void ) const
inline

Definition at line 135 of file kis_inpaint.cpp.

136 {
137 return m_pixelSize;
138 }

References m_pixelSize.

◆ saveToDevice()

void ImageView::saveToDevice ( KisPaintDeviceSP outDev,
QRect rect )
inline

Definition at line 140 of file kis_inpaint.cpp.

141 {
142 Q_ASSERT(outDev->colorSpace()->pixelSize() == (quint32) m_pixelSize);
143 outDev->writeBytes(m_data, rect);
144 }
const KoColorSpace * colorSpace() const
void writeBytes(const quint8 *data, qint32 x, qint32 y, qint32 w, qint32 h)
virtual quint32 pixelSize() const =0

References KisPaintDevice::colorSpace(), m_data, m_pixelSize, KoColorSpace::pixelSize(), and KisPaintDevice::writeBytes().

Member Data Documentation

◆ m_data

quint8* ImageView::m_data {nullptr}
protected

Definition at line 56 of file kis_inpaint.cpp.

56{nullptr};

◆ m_imageHeight

int ImageView::m_imageHeight {0}
protected

Definition at line 58 of file kis_inpaint.cpp.

58{0};

◆ m_imageWidth

int ImageView::m_imageWidth {0}
protected

Definition at line 57 of file kis_inpaint.cpp.

57{0};

◆ m_pixelSize

int ImageView::m_pixelSize {0}
protected

Definition at line 59 of file kis_inpaint.cpp.

59{0};

The documentation for this class was generated from the following file: