qimage.cpp

Absolute File Name:/home/qt/qt5_coco/qt5/qtbase/src/gui/image/qimage.cpp
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9static inline bool isLocked(QImageData *data)-
10{-
11 return
never executed: return data != 0 && data->is_locked;
data != 0
data != 0Description
TRUEnever evaluated
FALSEnever evaluated
&& data->is_locked
data->is_lockedDescription
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return data != 0 && data->is_locked;
0
12}-
13static QImage rotated90(const QImage &src);-
14static QImage rotated180(const QImage &src);-
15static QImage rotated270(const QImage &src);-
16-
17QBasicAtomicInt qimage_serial_number = { 1 };-
18-
19QImageData::QImageData()-
20 : ref(0), width(0), height(0), depth(0), nbytes(0), devicePixelRatio(1.0), data(0),-
21 format(QImage::Format_ARGB32), bytes_per_line(0),-
22 ser_no(qimage_serial_number.fetchAndAddRelaxed(1)),-
23 detach_no(0),-
24 dpmx(qt_defaultDpiX() * 100 / qreal(2.54)),-
25 dpmy(qt_defaultDpiY() * 100 / qreal(2.54)),-
26 offset(0, 0), own_data(true), ro_data(false), has_alpha_clut(false),-
27 is_cached(false), is_locked(false), cleanupFunction(0), cleanupInfo(0),-
28 paintEngine(0)-
29{-
30}
never executed: end of block
0
31QImageData * QImageData::create(const QSize &size, QImage::Format format)-
32{-
33 if (!size.isValid()
!size.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
|| format == QImage::Format_Invalid
format == QIma...Format_InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
34 return
never executed: return 0;
0;
never executed: return 0;
0
35-
36 uint width = size.width();-
37 uint height = size.height();-
38 uint depth = qt_depthForFormat(format);-
39-
40 const int bytes_per_line = ((width * depth + 31) >> 5) << 2;-
41-
42-
43 if (2147483647/depth < width
2147483647/depth < widthDescription
TRUEnever evaluated
FALSEnever evaluated
0
44 || bytes_per_line <= 0
bytes_per_line <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
45 || height <= 0
height <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
46 || 2147483647/uint(bytes_per_line) < height
2147483647/uin...line) < heightDescription
TRUEnever evaluated
FALSEnever evaluated
0
47 || 2147483647/sizeof(uchar *) < uint(height)
2147483647/siz...< uint(height)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
48 return
never executed: return 0;
0;
never executed: return 0;
0
49-
50 QScopedPointer<QImageData> d(new QImageData);-
51-
52 switch (format) {-
53 case
never executed: case QImage::Format_Mono:
QImage::Format_Mono:
never executed: case QImage::Format_Mono:
0
54 case
never executed: case QImage::Format_MonoLSB:
QImage::Format_MonoLSB:
never executed: case QImage::Format_MonoLSB:
0
55 d->colortable.resize(2);-
56 d->colortable[0] = QColor(Qt::black).rgba();-
57 d->colortable[1] = QColor(Qt::white).rgba();-
58 break;
never executed: break;
0
59 default
never executed: default:
:
never executed: default:
0
60 break;
never executed: break;
0
61 }-
62-
63 d->width = width;-
64 d->height = height;-
65 d->depth = depth;-
66 d->format = format;-
67 d->has_alpha_clut = false;-
68 d->is_cached = false;-
69-
70 d->bytes_per_line = bytes_per_line;-
71-
72 d->nbytes = d->bytes_per_line*height;-
73 d->data = (uchar *)malloc(d->nbytes);-
74-
75 if (!d->data
!d->dataDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
76 return
never executed: return 0;
0;
never executed: return 0;
0
77 }-
78-
79 d->ref.ref();-
80 return
never executed: return d.take();
d.take();
never executed: return d.take();
0
81-
82}-
83-
84QImageData::~QImageData()-
85{-
86 if (cleanupFunction
cleanupFunctionDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
87 cleanupFunction(cleanupInfo);
never executed: cleanupFunction(cleanupInfo);
0
88 if (is_cached
is_cachedDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
89 QImagePixmapCleanupHooks::executeImageHooks((((qint64) ser_no) << 32) | ((qint64) detach_no));
never executed: QImagePixmapCleanupHooks::executeImageHooks((((qint64) ser_no) << 32) | ((qint64) detach_no));
0
90 delete paintEngine;-
91 if (data
dataDescription
TRUEnever evaluated
FALSEnever evaluated
&& own_data
own_dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
92 free(data);
never executed: free(data);
0
93 data = 0;-
94}
never executed: end of block
0
95-
96-
97-
98-
99-
100bool QImageData::checkForAlphaPixels() const-
101{-
102 bool has_alpha_pixels = false;-
103-
104 switch (format) {-
105-
106 case
never executed: case QImage::Format_Mono:
QImage::Format_Mono:
never executed: case QImage::Format_Mono:
0
107 case
never executed: case QImage::Format_MonoLSB:
QImage::Format_MonoLSB:
never executed: case QImage::Format_MonoLSB:
0
108 case
never executed: case QImage::Format_Indexed8:
QImage::Format_Indexed8:
never executed: case QImage::Format_Indexed8:
0
109 has_alpha_pixels = has_alpha_clut;-
110 break;
never executed: break;
0
111 case
never executed: case QImage::Format_Alpha8:
QImage::Format_Alpha8:
never executed: case QImage::Format_Alpha8:
0
112 has_alpha_pixels = true;-
113 break;
never executed: break;
0
114 case
never executed: case QImage::Format_ARGB32:
QImage::Format_ARGB32:
never executed: case QImage::Format_ARGB32:
0
115 case
never executed: case QImage::Format_ARGB32_Premultiplied:
QImage::Format_ARGB32_Premultiplied:
never executed: case QImage::Format_ARGB32_Premultiplied:
{
0
116 uchar *bits = data;-
117 for (int y=0; y<height
y<heightDescription
TRUEnever evaluated
FALSEnever evaluated
&& !has_alpha_pixels
!has_alpha_pixelsDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
118 for (int x=0; x<width
x<widthDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
119 has_alpha_pixels |= (((uint *)bits)[x] & 0xff000000) != 0xff000000;
never executed: has_alpha_pixels |= (((uint *)bits)[x] & 0xff000000) != 0xff000000;
0
120 bits += bytes_per_line;-
121 }
never executed: end of block
0
122 } break;
never executed: break;
0
123-
124 case
never executed: case QImage::Format_RGBA8888:
QImage::Format_RGBA8888:
never executed: case QImage::Format_RGBA8888:
0
125 case
never executed: case QImage::Format_RGBA8888_Premultiplied:
QImage::Format_RGBA8888_Premultiplied:
never executed: case QImage::Format_RGBA8888_Premultiplied:
{
0
126 uchar *bits = data;-
127 for (int y=0; y<height
y<heightDescription
TRUEnever evaluated
FALSEnever evaluated
&& !has_alpha_pixels
!has_alpha_pixelsDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
128 for (int x=0; x<width
x<widthDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
129 has_alpha_pixels |= bits[x*4+3] != 0xff;
never executed: has_alpha_pixels |= bits[x*4+3] != 0xff;
0
130 bits += bytes_per_line;-
131 }
never executed: end of block
0
132 } break;
never executed: break;
0
133-
134 case
never executed: case QImage::Format_A2BGR30_Premultiplied:
QImage::Format_A2BGR30_Premultiplied:
never executed: case QImage::Format_A2BGR30_Premultiplied:
0
135 case
never executed: case QImage::Format_A2RGB30_Premultiplied:
QImage::Format_A2RGB30_Premultiplied:
never executed: case QImage::Format_A2RGB30_Premultiplied:
{
0
136 uchar *bits = data;-
137 for (int y=0; y<height
y<heightDescription
TRUEnever evaluated
FALSEnever evaluated
&& !has_alpha_pixels
!has_alpha_pixelsDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
138 for (int x=0; x<width
x<widthDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
139 has_alpha_pixels |= (((uint *)bits)[x] & 0xc0000000) != 0xc0000000;
never executed: has_alpha_pixels |= (((uint *)bits)[x] & 0xc0000000) != 0xc0000000;
0
140 bits += bytes_per_line;-
141 }
never executed: end of block
0
142 } break;
never executed: break;
0
143-
144 case
never executed: case QImage::Format_ARGB8555_Premultiplied:
QImage::Format_ARGB8555_Premultiplied:
never executed: case QImage::Format_ARGB8555_Premultiplied:
0
145 case
never executed: case QImage::Format_ARGB8565_Premultiplied:
QImage::Format_ARGB8565_Premultiplied:
never executed: case QImage::Format_ARGB8565_Premultiplied:
{
0
146 uchar *bits = data;-
147 uchar *end_bits = data + bytes_per_line;-
148-
149 for (int y=0; y<height
y<heightDescription
TRUEnever evaluated
FALSEnever evaluated
&& !has_alpha_pixels
!has_alpha_pixelsDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
150 while (bits < end_bits
bits < end_bitsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
151 has_alpha_pixels |= bits[0] != 0;-
152 bits += 3;-
153 }
never executed: end of block
0
154 bits = end_bits;-
155 end_bits += bytes_per_line;-
156 }
never executed: end of block
0
157 } break;
never executed: break;
0
158-
159 case
never executed: case QImage::Format_ARGB6666_Premultiplied:
QImage::Format_ARGB6666_Premultiplied:
never executed: case QImage::Format_ARGB6666_Premultiplied:
{
0
160 uchar *bits = data;-
161 uchar *end_bits = data + bytes_per_line;-
162-
163 for (int y=0; y<height
y<heightDescription
TRUEnever evaluated
FALSEnever evaluated
&& !has_alpha_pixels
!has_alpha_pixelsDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
164 while (bits < end_bits
bits < end_bitsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
165 has_alpha_pixels |= (bits[0] & 0xfc) != 0;-
166 bits += 3;-
167 }
never executed: end of block
0
168 bits = end_bits;-
169 end_bits += bytes_per_line;-
170 }
never executed: end of block
0
171 } break;
never executed: break;
0
172-
173 case
never executed: case QImage::Format_ARGB4444_Premultiplied:
QImage::Format_ARGB4444_Premultiplied:
never executed: case QImage::Format_ARGB4444_Premultiplied:
{
0
174 uchar *bits = data;-
175 uchar *end_bits = data + bytes_per_line;-
176-
177 for (int y=0; y<height
y<heightDescription
TRUEnever evaluated
FALSEnever evaluated
&& !has_alpha_pixels
!has_alpha_pixelsDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
178 while (bits < end_bits
bits < end_bitsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
179 has_alpha_pixels |= (bits[0] & 0xf0) != 0;-
180 bits += 2;-
181 }
never executed: end of block
0
182 bits = end_bits;-
183 end_bits += bytes_per_line;-
184 }
never executed: end of block
0
185 } break;
never executed: break;
0
186-
187 case
never executed: case QImage::Format_RGB32:
QImage::Format_RGB32:
never executed: case QImage::Format_RGB32:
0
188 case
never executed: case QImage::Format_RGB16:
QImage::Format_RGB16:
never executed: case QImage::Format_RGB16:
0
189 case
never executed: case QImage::Format_RGB444:
QImage::Format_RGB444:
never executed: case QImage::Format_RGB444:
0
190 case
never executed: case QImage::Format_RGB555:
QImage::Format_RGB555:
never executed: case QImage::Format_RGB555:
0
191 case
never executed: case QImage::Format_RGB666:
QImage::Format_RGB666:
never executed: case QImage::Format_RGB666:
0
192 case
never executed: case QImage::Format_RGB888:
QImage::Format_RGB888:
never executed: case QImage::Format_RGB888:
0
193 case
never executed: case QImage::Format_RGBX8888:
QImage::Format_RGBX8888:
never executed: case QImage::Format_RGBX8888:
0
194 case
never executed: case QImage::Format_BGR30:
QImage::Format_BGR30:
never executed: case QImage::Format_BGR30:
0
195 case
never executed: case QImage::Format_RGB30:
QImage::Format_RGB30:
never executed: case QImage::Format_RGB30:
0
196 case
never executed: case QImage::Format_Grayscale8:
QImage::Format_Grayscale8:
never executed: case QImage::Format_Grayscale8:
0
197 break;
never executed: break;
0
198 case
never executed: case QImage::Format_Invalid:
QImage::Format_Invalid:
never executed: case QImage::Format_Invalid:
0
199 case
never executed: case QImage::NImageFormats:
QImage::NImageFormats:
never executed: case QImage::NImageFormats:
0
200 do { ((!(false)) ? qt_assert_x("Q_UNREACHABLE()", "Q_UNREACHABLE was reached",__FILE__,277) : qt_noop()); __builtin_unreachable(); } while (0);-
201 break;
never executed: break;
0
202 }-
203-
204 return
never executed: return has_alpha_pixels;
has_alpha_pixels;
never executed: return has_alpha_pixels;
0
205}-
206QImage::QImage() noexcept-
207 : QPaintDevice()-
208{-
209 d = 0;-
210}
never executed: end of block
0
211QImage::QImage(int width, int height, Format format)-
212 : QPaintDevice()-
213{-
214 d = QImageData::create(QSize(width, height), format);-
215}
never executed: end of block
0
216QImage::QImage(const QSize &size, Format format)-
217 : QPaintDevice()-
218{-
219 d = QImageData::create(size, format);-
220}
never executed: end of block
0
221-
222-
223-
224QImageData *QImageData::create(uchar *data, int width, int height, int bpl, QImage::Format format, bool readOnly, QImageCleanupFunction cleanupFunction, void *cleanupInfo)-
225{-
226 QImageData *d = 0;-
227-
228 if (format == QImage::Format_Invalid
format == QIma...Format_InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
229 return
never executed: return d;
d;
never executed: return d;
0
230-
231 const int depth = qt_depthForFormat(format);-
232 const int calc_bytes_per_line = ((width * depth + 31)/32) * 4;-
233 const int min_bytes_per_line = (width * depth + 7)/8;-
234-
235 if (bpl <= 0
bpl <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
236 bpl = calc_bytes_per_line;
never executed: bpl = calc_bytes_per_line;
0
237-
238 if (width <= 0
width <= 0Description
TRUEnever evaluated
FALSEnever evaluated
|| height <= 0
height <= 0Description
TRUEnever evaluated
FALSEnever evaluated
|| !data
!dataDescription
TRUEnever evaluated
FALSEnever evaluated
0
239 || 2147483647/sizeof(uchar *) < uint(height)
2147483647/siz...< uint(height)Description
TRUEnever evaluated
FALSEnever evaluated
0
240 || 2147483647/uint(depth) < uint(width)
2147483647/uin... < uint(width)Description
TRUEnever evaluated
FALSEnever evaluated
0
241 || bpl <= 0
bpl <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
242 || bpl < min_bytes_per_line
bpl < min_bytes_per_lineDescription
TRUEnever evaluated
FALSEnever evaluated
0
243 || 2147483647/uint(bpl) < uint(height)
2147483647/uin...< uint(height)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
244 return
never executed: return d;
d;
never executed: return d;
0
245-
246 d = new QImageData;-
247 d->ref.ref();-
248-
249 d->own_data = false;-
250 d->ro_data = readOnly;-
251 d->data = data;-
252 d->width = width;-
253 d->height = height;-
254 d->depth = depth;-
255 d->format = format;-
256-
257 d->bytes_per_line = bpl;-
258 d->nbytes = d->bytes_per_line * height;-
259-
260 d->cleanupFunction = cleanupFunction;-
261 d->cleanupInfo = cleanupInfo;-
262-
263 return
never executed: return d;
d;
never executed: return d;
0
264}-
265QImage::QImage(uchar* data, int width, int height, Format format, QImageCleanupFunction cleanupFunction, void *cleanupInfo)-
266 : QPaintDevice()-
267{-
268 d = QImageData::create(data, width, height, 0, format, false, cleanupFunction, cleanupInfo);-
269}
never executed: end of block
0
270QImage::QImage(const uchar* data, int width, int height, Format format, QImageCleanupFunction cleanupFunction, void *cleanupInfo)-
271 : QPaintDevice()-
272{-
273 d = QImageData::create(const_cast<uchar*>(data), width, height, 0, format, true, cleanupFunction, cleanupInfo);-
274}
never executed: end of block
0
275QImage::QImage(uchar *data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction, void *cleanupInfo)-
276 :QPaintDevice()-
277{-
278 d = QImageData::create(data, width, height, bytesPerLine, format, false, cleanupFunction, cleanupInfo);-
279}
never executed: end of block
0
280QImage::QImage(const uchar *data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction, void *cleanupInfo)-
281 :QPaintDevice()-
282{-
283 d = QImageData::create(const_cast<uchar*>(data), width, height, bytesPerLine, format, true, cleanupFunction, cleanupInfo);-
284}
never executed: end of block
0
285QImage::QImage(const QString &fileName, const char *format)-
286 : QPaintDevice()-
287{-
288 d = 0;-
289 load(fileName, format);-
290}
never executed: end of block
0
291-
292-
293extern bool qt_read_xpm_image_or_array(QIODevice *device, const char * const *source, QImage &image);-
294QImage::QImage(const char * const xpm[])-
295 : QPaintDevice()-
296{-
297 d = 0;-
298 if (!xpm
!xpmDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
299 return;
never executed: return;
0
300 if (!qt_read_xpm_image_or_array(0, xpm, *this)
!qt_read_xpm_i...0, xpm, *this)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
301-
302 QMessageLogger(__FILE__, 996, __PRETTY_FUNCTION__).warning("QImage::QImage(), XPM is not supported");
never executed: QMessageLogger(__FILE__, 996, __PRETTY_FUNCTION__).warning("QImage::QImage(), XPM is not supported");
0
303}
never executed: end of block
0
304QImage::QImage(const QImage &image)-
305 : QPaintDevice()-
306{-
307 if (image.paintingActive()
image.paintingActive()Description
TRUEnever evaluated
FALSEnever evaluated
|| isLocked(image.d)
isLocked(image.d)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
308 d = 0;-
309 image.copy().swap(*this);-
310 }
never executed: end of block
else {
0
311 d = image.d;-
312 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
313 d->ref.ref();
never executed: d->ref.ref();
0
314 }
never executed: end of block
0
315}-
316-
317-
318-
319-
320-
321QImage::~QImage()-
322{-
323 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->ref.deref()
!d->ref.deref()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
324 delete d;
never executed: delete d;
0
325}
never executed: end of block
0
326QImage &QImage::operator=(const QImage &image)-
327{-
328 if (image.paintingActive()
image.paintingActive()Description
TRUEnever evaluated
FALSEnever evaluated
|| isLocked(image.d)
isLocked(image.d)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
329 operator=(image.copy());-
330 }
never executed: end of block
else {
0
331 if (image.d
image.dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
332 image.d->ref.ref();
never executed: image.d->ref.ref();
0
333 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
&& !d->ref.deref()
!d->ref.deref()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
334 delete d;
never executed: delete d;
0
335 d = image.d;-
336 }
never executed: end of block
0
337 return
never executed: return *this;
*this;
never executed: return *this;
0
338}-
339int QImage::devType() const-
340{-
341 return
never executed: return QInternal::Image;
QInternal::Image;
never executed: return QInternal::Image;
0
342}-
343-
344-
345-
346-
347QImage::operator QVariant() const-
348{-
349 return
never executed: return QVariant(QVariant::Image, this);
QVariant(QVariant::Image, this);
never executed: return QVariant(QVariant::Image, this);
0
350}-
351void QImage::detach()-
352{-
353 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
354 if (d->is_cached
d->is_cachedDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->ref.load() == 1
d->ref.load() == 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
355 QImagePixmapCleanupHooks::executeImageHooks(cacheKey());
never executed: QImagePixmapCleanupHooks::executeImageHooks(cacheKey());
0
356-
357 if (d->ref.load() != 1
d->ref.load() != 1Description
TRUEnever evaluated
FALSEnever evaluated
|| d->ro_data
d->ro_dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
358 *
never executed: *this = copy();
this = copy();
never executed: *this = copy();
0
359-
360 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
361 ++
never executed: ++d->detach_no;
d->detach_no;
never executed: ++d->detach_no;
0
362 }
never executed: end of block
0
363}
never executed: end of block
0
364-
365-
366static void copyMetadata(QImageData *dst, const QImageData *src)-
367{-
368-
369 dst->dpmx = src->dpmx;-
370 dst->dpmy = src->dpmy;-
371 dst->devicePixelRatio = src->devicePixelRatio;-
372 dst->text = src->text;-
373}
never executed: end of block
0
374QImage QImage::copy(const QRect& r) const-
375{-
376 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
377 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
378-
379 if (r.isNull()
r.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
380 QImage image(d->width, d->height, d->format);-
381 if (image.isNull()
image.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
382 return
never executed: return image;
image;
never executed: return image;
0
383-
384-
385-
386 if (image.d->nbytes != d->nbytes
image.d->nbytes != d->nbytesDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
387 int bpl = qMin(bytesPerLine(), image.bytesPerLine());-
388 for (int i = 0; i < height()
i < height()Description
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
389 memcpy(image.scanLine(i), scanLine(i), bpl);
never executed: memcpy(image.scanLine(i), scanLine(i), bpl);
0
390 }
never executed: end of block
else
0
391 memcpy(image.bits(), bits(), d->nbytes);
never executed: memcpy(image.bits(), bits(), d->nbytes);
0
392 image.d->colortable = d->colortable;-
393 image.d->offset = d->offset;-
394 image.d->has_alpha_clut = d->has_alpha_clut;-
395 copyMetadata(image.d, d);-
396 return
never executed: return image;
image;
never executed: return image;
0
397 }-
398-
399 int x = r.x();-
400 int y = r.y();-
401 int w = r.width();-
402 int h = r.height();-
403-
404 int dx = 0;-
405 int dy = 0;-
406 if (w <= 0
w <= 0Description
TRUEnever evaluated
FALSEnever evaluated
|| h <= 0
h <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
407 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
408-
409 QImage image(w, h, d->format);-
410 if (image.isNull()
image.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
411 return
never executed: return image;
image;
never executed: return image;
0
412-
413 if (x < 0
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| y < 0
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| x + w > d->width
x + w > d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
|| y + h > d->height
y + h > d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
414-
415 image.fill(0);-
416 if (x < 0
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
417 dx = -x;-
418 x = 0;-
419 }
never executed: end of block
0
420 if (y < 0
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
421 dy = -y;-
422 y = 0;-
423 }
never executed: end of block
0
424 }
never executed: end of block
0
425-
426 image.d->colortable = d->colortable;-
427-
428 int pixels_to_copy = qMax(w - dx, 0);-
429 if (x > d->width
x > d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
430 pixels_to_copy = 0;
never executed: pixels_to_copy = 0;
0
431 else if (pixels_to_copy > d->width - x
pixels_to_copy > d->width - xDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
432 pixels_to_copy = d->width - x;
never executed: pixels_to_copy = d->width - x;
0
433 int lines_to_copy = qMax(h - dy, 0);-
434 if (y > d->height
y > d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
435 lines_to_copy = 0;
never executed: lines_to_copy = 0;
0
436 else if (lines_to_copy > d->height - y
lines_to_copy > d->height - yDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
437 lines_to_copy = d->height - y;
never executed: lines_to_copy = d->height - y;
0
438-
439 bool byteAligned = true;-
440 if (d->format == Format_Mono
d->format == Format_MonoDescription
TRUEnever evaluated
FALSEnever evaluated
|| d->format == Format_MonoLSB
d->format == Format_MonoLSBDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
441 byteAligned = !(dx & 7)
!(dx & 7)Description
TRUEnever evaluated
FALSEnever evaluated
&& !(x & 7)
!(x & 7)Description
TRUEnever evaluated
FALSEnever evaluated
&& !(pixels_to_copy & 7)
!(pixels_to_copy & 7)Description
TRUEnever evaluated
FALSEnever evaluated
;
never executed: byteAligned = !(dx & 7) && !(x & 7) && !(pixels_to_copy & 7);
0
442-
443 if (byteAligned
byteAlignedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
444 const uchar *src = d->data + ((x * d->depth) >> 3) + y * d->bytes_per_line;-
445 uchar *dest = image.d->data + ((dx * d->depth) >> 3) + dy * image.d->bytes_per_line;-
446 const int bytes_to_copy = (pixels_to_copy * d->depth) >> 3;-
447 for (int i = 0; i < lines_to_copy
i < lines_to_copyDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
448 memcpy(dest, src, bytes_to_copy);-
449 src += d->bytes_per_line;-
450 dest += image.d->bytes_per_line;-
451 }
never executed: end of block
0
452 }
never executed: end of block
else if (d->format == Format_Mono
d->format == Format_MonoDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
453 const uchar *src = d->data + y * d->bytes_per_line;-
454 uchar *dest = image.d->data + dy * image.d->bytes_per_line;-
455 for (int i = 0; i < lines_to_copy
i < lines_to_copyDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
456 for (int j = 0; j < pixels_to_copy
j < pixels_to_copyDescription
TRUEnever evaluated
FALSEnever evaluated
; ++j) {
0
457 if (src[(x + j) >> 3] & (0x80 >> ((x + j) & 7))
src[(x + j) >>...((x + j) & 7))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
458 dest[(dx + j) >> 3] |= (0x80 >> ((dx + j) & 7));
never executed: dest[(dx + j) >> 3] |= (0x80 >> ((dx + j) & 7));
0
459 else-
460 dest[(dx + j) >> 3] &= ~(0x80 >> ((dx + j) & 7));
never executed: dest[(dx + j) >> 3] &= ~(0x80 >> ((dx + j) & 7));
0
461 }-
462 src += d->bytes_per_line;-
463 dest += image.d->bytes_per_line;-
464 }
never executed: end of block
0
465 }
never executed: end of block
else {
0
466 ((!(d->format == Format_MonoLSB)) ? qt_assert("d->format == Format_MonoLSB",__FILE__,1237) : qt_noop());-
467 const uchar *src = d->data + y * d->bytes_per_line;-
468 uchar *dest = image.d->data + dy * image.d->bytes_per_line;-
469 for (int i = 0; i < lines_to_copy
i < lines_to_copyDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
470 for (int j = 0; j < pixels_to_copy
j < pixels_to_copyDescription
TRUEnever evaluated
FALSEnever evaluated
; ++j) {
0
471 if (src[(x + j) >> 3] & (0x1 << ((x + j) & 7))
src[(x + j) >>...((x + j) & 7))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
472 dest[(dx + j) >> 3] |= (0x1 << ((dx + j) & 7));
never executed: dest[(dx + j) >> 3] |= (0x1 << ((dx + j) & 7));
0
473 else-
474 dest[(dx + j) >> 3] &= ~(0x1 << ((dx + j) & 7));
never executed: dest[(dx + j) >> 3] &= ~(0x1 << ((dx + j) & 7));
0
475 }-
476 src += d->bytes_per_line;-
477 dest += image.d->bytes_per_line;-
478 }
never executed: end of block
0
479 }
never executed: end of block
0
480-
481 copyMetadata(image.d, d);-
482 image.d->offset = offset();-
483 image.d->has_alpha_clut = d->has_alpha_clut;-
484 return
never executed: return image;
image;
never executed: return image;
0
485}-
486bool QImage::isNull() const-
487{-
488 return
never executed: return !d;
!d;
never executed: return !d;
0
489}-
490int QImage::width() const-
491{-
492 return
never executed: return d ? d->width : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->width : 0;
never executed: return d ? d->width : 0;
0
493}-
494int QImage::height() const-
495{-
496 return
never executed: return d ? d->height : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->height : 0;
never executed: return d ? d->height : 0;
0
497}-
498QSize QImage::size() const-
499{-
500 return
never executed: return d ? QSize(d->width, d->height) : QSize(0, 0);
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? QSize(d->width, d->height) : QSize(0, 0);
never executed: return d ? QSize(d->width, d->height) : QSize(0, 0);
0
501}-
502QRect QImage::rect() const-
503{-
504 return
never executed: return d ? QRect(0, 0, d->width, d->height) : QRect();
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? QRect(0, 0, d->width, d->height) : QRect();
never executed: return d ? QRect(0, 0, d->width, d->height) : QRect();
0
505}-
506int QImage::depth() const-
507{-
508 return
never executed: return d ? d->depth : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->depth : 0;
never executed: return d ? d->depth : 0;
0
509}-
510int QImage::colorCount() const-
511{-
512 return
never executed: return d ? d->colortable.size() : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->colortable.size() : 0;
never executed: return d ? d->colortable.size() : 0;
0
513}-
514void QImage::setColorTable(const QVector<QRgb> colors)-
515-
516{-
517 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
518 return;
never executed: return;
0
519 detach();-
520-
521-
522 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
523 return;
never executed: return;
0
524-
525-
526-
527-
528 d->colortable = std::move(const_cast<QVector<QRgb>&>(colors));-
529-
530 d->has_alpha_clut = false;-
531 for (int i = 0; i < d->colortable.size()
i < d->colortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
532 if (qAlpha(d->colortable.at(i)) != 255
qAlpha(d->colo....at(i)) != 255Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
533 d->has_alpha_clut = true;-
534 break;
never executed: break;
0
535 }-
536 }
never executed: end of block
0
537}
never executed: end of block
0
538-
539-
540-
541-
542-
543-
544-
545QVector<QRgb> QImage::colorTable() const-
546{-
547 return
never executed: return d ? d->colortable : QVector<QRgb>();
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->colortable : QVector<QRgb>();
never executed: return d ? d->colortable : QVector<QRgb>();
0
548}-
549qreal QImage::devicePixelRatio() const-
550{-
551 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
552 return
never executed: return 1.0;
1.0;
never executed: return 1.0;
0
553 return
never executed: return d->devicePixelRatio;
d->devicePixelRatio;
never executed: return d->devicePixelRatio;
0
554}-
555void QImage::setDevicePixelRatio(qreal scaleFactor)-
556{-
557 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
558 return;
never executed: return;
0
559-
560 if (scaleFactor == d->devicePixelRatio
scaleFactor ==...vicePixelRatioDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
561 return;
never executed: return;
0
562-
563 detach();-
564 d->devicePixelRatio = scaleFactor;-
565}
never executed: end of block
0
566int QImage::byteCount() const-
567{-
568 return
never executed: return d ? d->nbytes : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->nbytes : 0;
never executed: return d ? d->nbytes : 0;
0
569}-
570int QImage::bytesPerLine() const-
571{-
572 return
never executed: return (d && d->height) ? d->nbytes / d->height : 0;
(d
dDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->height
d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
) ? d->nbytes / d->height : 0;
never executed: return (d && d->height) ? d->nbytes / d->height : 0;
0
573}-
574QRgb QImage::color(int i) const-
575{-
576 ((!(i < colorCount())) ? qt_assert("i < colorCount()",__FILE__,1502) : qt_noop());-
577 return
never executed: return d ? d->colortable.at(i) : QRgb(uint(-1));
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->colortable.at(i) : QRgb(uint(-1));
never executed: return d ? d->colortable.at(i) : QRgb(uint(-1));
0
578}-
579void QImage::setColor(int i, QRgb c)-
580{-
581 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
582 return;
never executed: return;
0
583 if (i < 0
i < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| d->depth > 8
d->depth > 8Description
TRUEnever evaluated
FALSEnever evaluated
|| i >= 1<<d->depth
i >= 1<<d->depthDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
584 QMessageLogger(__FILE__, 1523, __PRETTY_FUNCTION__).warning("QImage::setColor: Index out of bound %d", i);-
585 return;
never executed: return;
0
586 }-
587 detach();-
588-
589-
590 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
591 return;
never executed: return;
0
592-
593 if (i >= d->colortable.size()
i >= d->colortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
594 setColorCount(i+1);
never executed: setColorCount(i+1);
0
595 d->colortable[i] = c;-
596 d->has_alpha_clut |= (qAlpha(c) != 255);-
597}
never executed: end of block
0
598uchar *QImage::scanLine(int i)-
599{-
600 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
601 return
never executed: return 0;
0;
never executed: return 0;
0
602-
603 detach();-
604-
605-
606 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
607 return
never executed: return 0;
0;
never executed: return 0;
0
608-
609 return
never executed: return d->data + i * d->bytes_per_line;
d->data + i * d->bytes_per_line;
never executed: return d->data + i * d->bytes_per_line;
0
610}-
611-
612-
613-
614-
615const uchar *QImage::scanLine(int i) const-
616{-
617 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
618 return
never executed: return 0;
0;
never executed: return 0;
0
619-
620 ((!(i >= 0 && i < height())) ? qt_assert("i >= 0 && i < height()",__FILE__,1576) : qt_noop());-
621 return
never executed: return d->data + i * d->bytes_per_line;
d->data + i * d->bytes_per_line;
never executed: return d->data + i * d->bytes_per_line;
0
622}-
623const uchar *QImage::constScanLine(int i) const-
624{-
625 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
626 return
never executed: return 0;
0;
never executed: return 0;
0
627-
628 ((!(i >= 0 && i < height())) ? qt_assert("i >= 0 && i < height()",__FILE__,1599) : qt_noop());-
629 return
never executed: return d->data + i * d->bytes_per_line;
d->data + i * d->bytes_per_line;
never executed: return d->data + i * d->bytes_per_line;
0
630}-
631uchar *QImage::bits()-
632{-
633 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
634 return
never executed: return 0;
0;
never executed: return 0;
0
635 detach();-
636-
637-
638 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
639 return
never executed: return 0;
0;
never executed: return 0;
0
640-
641 return
never executed: return d->data;
d->data;
never executed: return d->data;
0
642}-
643const uchar *QImage::bits() const-
644{-
645 return
never executed: return d ? d->data : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->data : 0;
never executed: return d ? d->data : 0;
0
646}-
647const uchar *QImage::constBits() const-
648{-
649 return
never executed: return d ? d->data : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->data : 0;
never executed: return d ? d->data : 0;
0
650}-
651void QImage::fill(uint pixel)-
652{-
653 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
654 return;
never executed: return;
0
655-
656 detach();-
657-
658-
659 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
660 return;
never executed: return;
0
661-
662 if (d->depth == 1
d->depth == 1Description
TRUEnever evaluated
FALSEnever evaluated
|| d->depth == 8
d->depth == 8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
663 int w = d->width;-
664 if (d->depth == 1
d->depth == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
665 if (pixel & 1
pixel & 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
666 pixel = 0xffffffff;
never executed: pixel = 0xffffffff;
0
667 else-
668 pixel = 0;
never executed: pixel = 0;
0
669 w = (w + 7) / 8;-
670 }
never executed: end of block
else {
0
671 pixel &= 0xff;-
672 }
never executed: end of block
0
673 qt_rectfill<quint8>(d->data, pixel, 0, 0,-
674 w, d->height, d->bytes_per_line);-
675 return;
never executed: return;
0
676 } else if (d->depth == 16
d->depth == 16Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
677 qt_rectfill<quint16>(reinterpret_cast<quint16*>(d->data), pixel,-
678 0, 0, d->width, d->height, d->bytes_per_line);-
679 return;
never executed: return;
0
680 } else if (d->depth == 24
d->depth == 24Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
681 qt_rectfill<quint24>(reinterpret_cast<quint24*>(d->data), pixel,-
682 0, 0, d->width, d->height, d->bytes_per_line);-
683 return;
never executed: return;
0
684 }-
685-
686 if (d->format == Format_RGB32
d->format == Format_RGB32Description
TRUEnever evaluated
FALSEnever evaluated
)
0
687 pixel |= 0xff000000;
never executed: pixel |= 0xff000000;
0
688 if (d->format == Format_RGBX8888
d->format == Format_RGBX8888Description
TRUEnever evaluated
FALSEnever evaluated
)
0
689-
690 pixel |= 0xff000000;
never executed: pixel |= 0xff000000;
0
691-
692-
693-
694 if (d->format == Format_BGR30
d->format == Format_BGR30Description
TRUEnever evaluated
FALSEnever evaluated
|| d->format == Format_RGB30
d->format == Format_RGB30Description
TRUEnever evaluated
FALSEnever evaluated
)
0
695 pixel |= 0xc0000000;
never executed: pixel |= 0xc0000000;
0
696-
697 qt_rectfill<uint>(reinterpret_cast<uint*>(d->data), pixel,-
698 0, 0, d->width, d->height, d->bytes_per_line);-
699}
never executed: end of block
0
700void QImage::fill(Qt::GlobalColor color)-
701{-
702 fill(QColor(color));-
703}
never executed: end of block
0
704void QImage::fill(const QColor &color)-
705{-
706 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
707 return;
never executed: return;
0
708 detach();-
709-
710-
711 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
712 return;
never executed: return;
0
713-
714 switch (d->format) {-
715 case
never executed: case QImage::Format_RGB32:
QImage::Format_RGB32:
never executed: case QImage::Format_RGB32:
0
716 case
never executed: case QImage::Format_ARGB32:
QImage::Format_ARGB32:
never executed: case QImage::Format_ARGB32:
0
717 fill(color.rgba());-
718 break;
never executed: break;
0
719 case
never executed: case QImage::Format_ARGB32_Premultiplied:
QImage::Format_ARGB32_Premultiplied:
never executed: case QImage::Format_ARGB32_Premultiplied:
0
720 fill(qPremultiply(color.rgba()));-
721 break;
never executed: break;
0
722 case
never executed: case QImage::Format_RGBX8888:
QImage::Format_RGBX8888:
never executed: case QImage::Format_RGBX8888:
0
723 fill(ARGB2RGBA(color.rgba() | 0xff000000));-
724 break;
never executed: break;
0
725 case
never executed: case QImage::Format_RGBA8888:
QImage::Format_RGBA8888:
never executed: case QImage::Format_RGBA8888:
0
726 fill(ARGB2RGBA(color.rgba()));-
727 break;
never executed: break;
0
728 case
never executed: case QImage::Format_RGBA8888_Premultiplied:
QImage::Format_RGBA8888_Premultiplied:
never executed: case QImage::Format_RGBA8888_Premultiplied:
0
729 fill(ARGB2RGBA(qPremultiply(color.rgba())));-
730 break;
never executed: break;
0
731 case
never executed: case QImage::Format_BGR30:
QImage::Format_BGR30:
never executed: case QImage::Format_BGR30:
0
732 case
never executed: case QImage::Format_A2BGR30_Premultiplied:
QImage::Format_A2BGR30_Premultiplied:
never executed: case QImage::Format_A2BGR30_Premultiplied:
0
733 fill(qConvertRgb64ToRgb30<PixelOrderBGR>(color.rgba64()));-
734 break;
never executed: break;
0
735 case
never executed: case QImage::Format_RGB30:
QImage::Format_RGB30:
never executed: case QImage::Format_RGB30:
0
736 case
never executed: case QImage::Format_A2RGB30_Premultiplied:
QImage::Format_A2RGB30_Premultiplied:
never executed: case QImage::Format_A2RGB30_Premultiplied:
0
737 fill(qConvertRgb64ToRgb30<PixelOrderRGB>(color.rgba64()));-
738 break;
never executed: break;
0
739 case
never executed: case QImage::Format_RGB16:
QImage::Format_RGB16:
never executed: case QImage::Format_RGB16:
0
740 fill((uint) qConvertRgb32To16(color.rgba()));-
741 break;
never executed: break;
0
742 case
never executed: case QImage::Format_Indexed8:
QImage::Format_Indexed8:
never executed: case QImage::Format_Indexed8:
{
0
743 uint pixel = 0;-
744 for (int i=0; i<d->colortable.size()
i<d->colortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
745 if (color.rgba() == d->colortable.at(i)
color.rgba() =...lortable.at(i)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
746 pixel = i;-
747 break;
never executed: break;
0
748 }-
749 }
never executed: end of block
0
750 fill(pixel);-
751 break;
never executed: break;
0
752 }-
753 case
never executed: case QImage::Format_Mono:
QImage::Format_Mono:
never executed: case QImage::Format_Mono:
0
754 case
never executed: case QImage::Format_MonoLSB:
QImage::Format_MonoLSB:
never executed: case QImage::Format_MonoLSB:
0
755 if (color == Qt::color1
color == Qt::color1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
756 fill((uint) 1);
never executed: fill((uint) 1);
0
757 else-
758 fill((uint) 0);
never executed: fill((uint) 0);
0
759 break;
never executed: break;
0
760 default
never executed: default:
:
never executed: default:
{
0
761 QPainter p(this);-
762 p.setCompositionMode(QPainter::CompositionMode_Source);-
763 p.fillRect(rect(), color);-
764 }}
never executed: end of block
0
765}-
766void QImage::invertPixels(InvertMode mode)-
767{-
768 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
769 return;
never executed: return;
0
770-
771 detach();-
772-
773-
774 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
775 return;
never executed: return;
0
776-
777 QImage::Format originalFormat = d->format;-
778-
779 if (hasAlphaChannel()
hasAlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
&& qPixelLayouts[d->format].premultiplied
qPixelLayouts[....premultipliedDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
780 if (!d->convertInPlace(QImage::Format_ARGB32, 0)
!d->convertInP...mat_ARGB32, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
781 *
never executed: *this = convertToFormat(QImage::Format_ARGB32);
this = convertToFormat(QImage::Format_ARGB32);
never executed: *this = convertToFormat(QImage::Format_ARGB32);
0
782 }
never executed: end of block
0
783-
784 if (depth() < 32
depth() < 32Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
785-
786 int bpl = (d->width * d->depth + 7) / 8;-
787 int pad = d->bytes_per_line - bpl;-
788 uchar *sl = d->data;-
789 for (int y=0; y<d->height
y<d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
790 for (int x=0; x<bpl
x<bplDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
791 *
never executed: *sl++ ^= 0xff;
sl++ ^= 0xff;
never executed: *sl++ ^= 0xff;
0
792 sl += pad;-
793 }
never executed: end of block
0
794 }
never executed: end of block
else {
0
795 quint32 *p = (quint32*)d->data;-
796 quint32 *end = (quint32*)(d->data + d->nbytes);-
797 quint32 xorbits = 0xffffffff;-
798 switch (d->format) {-
799 case
never executed: case QImage::Format_RGBA8888:
QImage::Format_RGBA8888:
never executed: case QImage::Format_RGBA8888:
0
800 if (mode == InvertRgba
mode == InvertRgbaDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
801 break;
never executed: break;
0
802-
803 case
never executed: case QImage::Format_RGBX8888:
QImage::Format_RGBX8888:
never executed: case QImage::Format_RGBX8888:
code before this statement never executed: case QImage::Format_RGBX8888:
0
804-
805-
806-
807-
808 xorbits = 0x00ffffff;-
809 break;
never executed: break;
0
810-
811 case
never executed: case QImage::Format_ARGB32:
QImage::Format_ARGB32:
never executed: case QImage::Format_ARGB32:
0
812 if (mode == InvertRgba
mode == InvertRgbaDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
813 break;
never executed: break;
0
814-
815 case
never executed: case QImage::Format_RGB32:
QImage::Format_RGB32:
never executed: case QImage::Format_RGB32:
code before this statement never executed: case QImage::Format_RGB32:
0
816 xorbits = 0x00ffffff;-
817 break;
never executed: break;
0
818 case
never executed: case QImage::Format_BGR30:
QImage::Format_BGR30:
never executed: case QImage::Format_BGR30:
0
819 case
never executed: case QImage::Format_RGB30:
QImage::Format_RGB30:
never executed: case QImage::Format_RGB30:
0
820 xorbits = 0x3fffffff;-
821 break;
never executed: break;
0
822 default
never executed: default:
:
never executed: default:
0
823 do { ((!(false)) ? qt_assert_x("Q_UNREACHABLE()", "Q_UNREACHABLE was reached",__FILE__,1900) : qt_noop()); __builtin_unreachable(); } while (0);-
824 xorbits = 0;-
825 break;
never executed: break;
0
826 }-
827 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
828 *
never executed: *p++ ^= xorbits;
p++ ^= xorbits;
never executed: *p++ ^= xorbits;
0
829 }
never executed: end of block
0
830-
831 if (originalFormat != d->format
originalFormat != d->formatDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
832 if (!d->convertInPlace(originalFormat, 0)
!d->convertInP...inalFormat, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
833 *
never executed: *this = convertToFormat(originalFormat);
this = convertToFormat(originalFormat);
never executed: *this = convertToFormat(originalFormat);
0
834 }
never executed: end of block
0
835}
never executed: end of block
0
836void QImage::setColorCount(int colorCount)-
837{-
838 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
839 QMessageLogger(__FILE__, 1943, __PRETTY_FUNCTION__).warning("QImage::setColorCount: null image");-
840 return;
never executed: return;
0
841 }-
842-
843 detach();-
844-
845-
846 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
847 return;
never executed: return;
0
848-
849 if (colorCount == d->colortable.size()
colorCount == ...ortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
850 return;
never executed: return;
0
851 if (colorCount <= 0
colorCount <= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
852 d->colortable = QVector<QRgb>();-
853 return;
never executed: return;
0
854 }-
855 int nc = d->colortable.size();-
856 d->colortable.resize(colorCount);-
857 for (int i = nc; i < colorCount
i < colorCountDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
858 d->colortable[i] = 0;
never executed: d->colortable[i] = 0;
0
859}
never executed: end of block
0
860-
861-
862-
863-
864-
865-
866QImage::Format QImage::format() const-
867{-
868 return
never executed: return d ? d->format : Format_Invalid;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->format : Format_Invalid;
never executed: return d ? d->format : Format_Invalid;
0
869}-
870QImage QImage::convertToFormat_helper(Format format, Qt::ImageConversionFlags flags) const-
871{-
872 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| d->format == format
d->format == formatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
873 return
never executed: return *this;
*this;
never executed: return *this;
0
874-
875 if (format == Format_Invalid
format == Format_InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
|| d->format == Format_Invalid
d->format == Format_InvalidDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
876 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
877-
878 Image_Converter converter = qimage_converter_map[d->format][format];-
879 if (!converter
!converterDescription
TRUEnever evaluated
FALSEnever evaluated
&& format > QImage::Format_Indexed8
format > QImag...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
&& d->format > QImage::Format_Indexed8
d->format > QI...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
)
0
880 converter = convert_generic;
never executed: converter = convert_generic;
0
881 if (converter
converterDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
882 QImage image(d->width, d->height, format);-
883-
884 if ((
(image).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
image).isNull()
(image).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 2003, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
885-
886 image.d->offset = offset();-
887 copyMetadata(image.d, d);-
888-
889 converter(image.d, d, flags);-
890 return
never executed: return image;
image;
never executed: return image;
0
891 }-
892-
893-
894 ((!(format != QImage::Format_ARGB32 && format != QImage::Format_RGB32)) ? qt_assert("format != QImage::Format_ARGB32 && format != QImage::Format_RGB32",__FILE__,2013) : qt_noop());-
895 ((!(d->format != QImage::Format_ARGB32 && d->format != QImage::Format_RGB32)) ? qt_assert("d->format != QImage::Format_ARGB32 && d->format != QImage::Format_RGB32",__FILE__,2014) : qt_noop());-
896-
897 if (!hasAlphaChannel()
!hasAlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
898 return
never executed: return convertToFormat(Format_RGB32, flags).convertToFormat(format, flags);
convertToFormat(Format_RGB32, flags).convertToFormat(format, flags);
never executed: return convertToFormat(Format_RGB32, flags).convertToFormat(format, flags);
0
899-
900 return
never executed: return convertToFormat(Format_ARGB32, flags).convertToFormat(format, flags);
convertToFormat(Format_ARGB32, flags).convertToFormat(format, flags);
never executed: return convertToFormat(Format_ARGB32, flags).convertToFormat(format, flags);
0
901}-
902-
903-
904-
905-
906bool QImage::convertToFormat_inplace(Format format, Qt::ImageConversionFlags flags)-
907{-
908 return
never executed: return d && d->convertInPlace(format, flags);
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->convertInPlace(format, flags)
d->convertInPl...format, flags)Description
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return d && d->convertInPlace(format, flags);
0
909}-
910-
911static inline int pixel_distance(QRgb p1, QRgb p2) {-
912 int r1 = qRed(p1);-
913 int g1 = qGreen(p1);-
914 int b1 = qBlue(p1);-
915 int a1 = qAlpha(p1);-
916-
917 int r2 = qRed(p2);-
918 int g2 = qGreen(p2);-
919 int b2 = qBlue(p2);-
920 int a2 = qAlpha(p2);-
921-
922 return
never executed: return abs(r1 - r2) + abs(g1 - g2) + abs(b1 - b2) + abs(a1 - a2);
abs(r1 - r2) + abs(g1 - g2) + abs(b1 - b2) + abs(a1 - a2);
never executed: return abs(r1 - r2) + abs(g1 - g2) + abs(b1 - b2) + abs(a1 - a2);
0
923}-
924-
925static inline int closestMatch(QRgb pixel, const QVector<QRgb> &clut) {-
926 int idx = 0;-
927 int current_distance = 2147483647;-
928 for (int i=0; i<clut.size()
i<clut.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
929 int dist = pixel_distance(pixel, clut.at(i));-
930 if (dist < current_distance
dist < current_distanceDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
931 current_distance = dist;-
932 idx = i;-
933 }
never executed: end of block
0
934 }
never executed: end of block
0
935 return
never executed: return idx;
idx;
never executed: return idx;
0
936}-
937-
938static QImage convertWithPalette(const QImage &src, QImage::Format format,-
939 const QVector<QRgb> &clut) {-
940 QImage dest(src.size(), format);-
941 dest.setColorTable(clut);-
942-
943 QString textsKeys = src.text();-
944 QStringList textKeyList = textsKeys.split(QLatin1Char('\n'), QString::SkipEmptyParts);-
945 for (QForeachContainer<typename QtPrivate::remove_reference<decltype(textKeyList)>::type> _container_((textKeyList)); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for (const QString &textKey = *_container_.i; _container_.control; _container_.control = 0) {-
946 QStringList textKeySplitted = textKey.split(QLatin1String(": "));-
947 dest.setText(textKeySplitted[0], textKeySplitted[1]);-
948 }
never executed: end of block
0
949-
950 int h = src.height();-
951 int w = src.width();-
952-
953 QHash<QRgb, int> cache;-
954-
955 if (format == QImage::Format_Indexed8
format == QIma...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
956 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
957 const QRgb *src_pixels = (const QRgb *) src.scanLine(y);-
958 uchar *dest_pixels = (uchar *) dest.scanLine(y);-
959 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x) {
0
960 int src_pixel = src_pixels[x];-
961 int value = cache.value(src_pixel, -1);-
962 if (value == -1
value == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
963 value = closestMatch(src_pixel, clut);-
964 cache.insert(src_pixel, value);-
965 }
never executed: end of block
0
966 dest_pixels[x] = (uchar) value;-
967 }
never executed: end of block
0
968 }
never executed: end of block
0
969 }
never executed: end of block
else {
0
970 QVector<QRgb> table = clut;-
971 table.resize(2);-
972 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
973 const QRgb *src_pixels = (const QRgb *) src.scanLine(y);-
974 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x) {
0
975 int src_pixel = src_pixels[x];-
976 int value = cache.value(src_pixel, -1);-
977 if (value == -1
value == -1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
978 value = closestMatch(src_pixel, table);-
979 cache.insert(src_pixel, value);-
980 }
never executed: end of block
0
981 dest.setPixel(x, y, value);-
982 }
never executed: end of block
0
983 }
never executed: end of block
0
984 }
never executed: end of block
0
985-
986 return
never executed: return dest;
dest;
never executed: return dest;
0
987}-
988QImage QImage::convertToFormat(Format format, const QVector<QRgb> &colorTable, Qt::ImageConversionFlags flags) const-
989{-
990 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| d->format == format
d->format == formatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
991 return
never executed: return *this;
*this;
never executed: return *this;
0
992-
993 if (format <= QImage::Format_Indexed8
format <= QIma...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
&& depth() == 32
depth() == 32Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
994 return
never executed: return convertWithPalette(*this, format, colorTable);
convertWithPalette(*this, format, colorTable);
never executed: return convertWithPalette(*this, format, colorTable);
0
995 }-
996-
997 const Image_Converter *converterPtr = &qimage_converter_map[d->format][format];-
998 Image_Converter converter = *converterPtr;-
999 if (!converter
!converterDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1000 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1001-
1002 QImage image(d->width, d->height, format);-
1003 if ((
(image).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
image).isNull()
(image).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 2133, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
1004-
1005 image.d->offset = offset();-
1006 copyMetadata(image.d, d);-
1007-
1008 converter(image.d, d, flags);-
1009 return
never executed: return image;
image;
never executed: return image;
0
1010}-
1011bool QImage::valid(int x, int y) const-
1012{-
1013 return
never executed: return d && x >= 0 && x < d->width && y >= 0 && y < d->height;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
never executed: return d && x >= 0 && x < d->width && y >= 0 && y < d->height;
0
1014 && x >= 0
x >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& x < d->width
x < d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
never executed: return d && x >= 0 && x < d->width && y >= 0 && y < d->height;
0
1015 && y >= 0
y >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& y < d->height
y < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return d && x >= 0 && x < d->width && y >= 0 && y < d->height;
0
1016}-
1017int QImage::pixelIndex(int x, int y) const-
1018{-
1019 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| x < 0
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| x >= d->width
x >= d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
|| y < 0
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| y >= height()
y >= height()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1020 QMessageLogger(__FILE__, 2183, __PRETTY_FUNCTION__).warning("QImage::pixelIndex: coordinate (%d,%d) out of range", x, y);-
1021 return
never executed: return -12345;
-12345;
never executed: return -12345;
0
1022 }-
1023 const uchar * s = scanLine(y);-
1024 switch(d->format) {-
1025 case
never executed: case Format_Mono:
Format_Mono:
never executed: case Format_Mono:
0
1026 return
never executed: return (*(s + (x >> 3)) >> (7- (x & 7))) & 1;
(*(s + (x >> 3)) >> (7- (x & 7))) & 1;
never executed: return (*(s + (x >> 3)) >> (7- (x & 7))) & 1;
0
1027 case
never executed: case Format_MonoLSB:
Format_MonoLSB:
never executed: case Format_MonoLSB:
0
1028 return
never executed: return (*(s + (x >> 3)) >> (x & 7)) & 1;
(*(s + (x >> 3)) >> (x & 7)) & 1;
never executed: return (*(s + (x >> 3)) >> (x & 7)) & 1;
0
1029 case
never executed: case Format_Indexed8:
Format_Indexed8:
never executed: case Format_Indexed8:
0
1030 return
never executed: return (int)s[x];
(int)s[x];
never executed: return (int)s[x];
0
1031 default
never executed: default:
:
never executed: default:
0
1032 QMessageLogger(__FILE__, 2195, __PRETTY_FUNCTION__).warning("QImage::pixelIndex: Not applicable for %d-bpp images (no palette)", d->depth);-
1033 }
never executed: end of block
0
1034 return
never executed: return 0;
0;
never executed: return 0;
0
1035}-
1036QRgb QImage::pixel(int x, int y) const-
1037{-
1038 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| x < 0
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| x >= d->width
x >= d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
|| y < 0
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| y >= d->height
y >= d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1039 QMessageLogger(__FILE__, 2224, __PRETTY_FUNCTION__).warning("QImage::pixel: coordinate (%d,%d) out of range", x, y);-
1040 return
never executed: return 12345;
12345;
never executed: return 12345;
0
1041 }-
1042-
1043 const uchar *s = d->data + y * d->bytes_per_line;-
1044-
1045 int index = -1;-
1046 switch (d->format) {-
1047 case
never executed: case Format_Mono:
Format_Mono:
never executed: case Format_Mono:
0
1048 index = (*(s + (x >> 3)) >> (~x & 7)) & 1;-
1049 break;
never executed: break;
0
1050 case
never executed: case Format_MonoLSB:
Format_MonoLSB:
never executed: case Format_MonoLSB:
0
1051 index = (*(s + (x >> 3)) >> (x & 7)) & 1;-
1052 break;
never executed: break;
0
1053 case
never executed: case Format_Indexed8:
Format_Indexed8:
never executed: case Format_Indexed8:
0
1054 index = s[x];-
1055 break;
never executed: break;
0
1056 default
never executed: default:
:
never executed: default:
0
1057 break;
never executed: break;
0
1058 }-
1059 if (index >= 0
index >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1060 if (index >= d->colortable.size()
index >= d->colortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1061 QMessageLogger(__FILE__, 2246, __PRETTY_FUNCTION__).warning("QImage::pixel: color table index %d out of range.", index);-
1062 return
never executed: return 0;
0;
never executed: return 0;
0
1063 }-
1064 return
never executed: return d->colortable.at(index);
d->colortable.at(index);
never executed: return d->colortable.at(index);
0
1065 }-
1066-
1067 switch (d->format) {-
1068 case
never executed: case Format_RGB32:
Format_RGB32:
never executed: case Format_RGB32:
0
1069 return
never executed: return 0xff000000 | reinterpret_cast<const QRgb *>(s)[x];
0xff000000 | reinterpret_cast<const QRgb *>(s)[x];
never executed: return 0xff000000 | reinterpret_cast<const QRgb *>(s)[x];
0
1070 case
never executed: case Format_ARGB32:
Format_ARGB32:
never executed: case Format_ARGB32:
0
1071 case
never executed: case Format_ARGB32_Premultiplied:
Format_ARGB32_Premultiplied:
never executed: case Format_ARGB32_Premultiplied:
0
1072 return
never executed: return reinterpret_cast<const QRgb *>(s)[x];
reinterpret_cast<const QRgb *>(s)[x];
never executed: return reinterpret_cast<const QRgb *>(s)[x];
0
1073 case
never executed: case Format_RGBX8888:
Format_RGBX8888:
never executed: case Format_RGBX8888:
0
1074 case
never executed: case Format_RGBA8888:
Format_RGBA8888:
never executed: case Format_RGBA8888:
0
1075 case
never executed: case Format_RGBA8888_Premultiplied:
Format_RGBA8888_Premultiplied:
never executed: case Format_RGBA8888_Premultiplied:
0
1076 return
never executed: return RGBA2ARGB(reinterpret_cast<const quint32 *>(s)[x]);
RGBA2ARGB(reinterpret_cast<const quint32 *>(s)[x]);
never executed: return RGBA2ARGB(reinterpret_cast<const quint32 *>(s)[x]);
0
1077 case
never executed: case Format_BGR30:
Format_BGR30:
never executed: case Format_BGR30:
0
1078 case
never executed: case Format_A2BGR30_Premultiplied:
Format_A2BGR30_Premultiplied:
never executed: case Format_A2BGR30_Premultiplied:
0
1079 return
never executed: return qConvertA2rgb30ToArgb32<PixelOrderBGR>(reinterpret_cast<const quint32 *>(s)[x]);
qConvertA2rgb30ToArgb32<PixelOrderBGR>(reinterpret_cast<const quint32 *>(s)[x]);
never executed: return qConvertA2rgb30ToArgb32<PixelOrderBGR>(reinterpret_cast<const quint32 *>(s)[x]);
0
1080 case
never executed: case Format_RGB30:
Format_RGB30:
never executed: case Format_RGB30:
0
1081 case
never executed: case Format_A2RGB30_Premultiplied:
Format_A2RGB30_Premultiplied:
never executed: case Format_A2RGB30_Premultiplied:
0
1082 return
never executed: return qConvertA2rgb30ToArgb32<PixelOrderRGB>(reinterpret_cast<const quint32 *>(s)[x]);
qConvertA2rgb30ToArgb32<PixelOrderRGB>(reinterpret_cast<const quint32 *>(s)[x]);
never executed: return qConvertA2rgb30ToArgb32<PixelOrderRGB>(reinterpret_cast<const quint32 *>(s)[x]);
0
1083 case
never executed: case Format_RGB16:
Format_RGB16:
never executed: case Format_RGB16:
0
1084 return
never executed: return qConvertRgb16To32(reinterpret_cast<const quint16 *>(s)[x]);
qConvertRgb16To32(reinterpret_cast<const quint16 *>(s)[x]);
never executed: return qConvertRgb16To32(reinterpret_cast<const quint16 *>(s)[x]);
0
1085 default
never executed: default:
:
never executed: default:
0
1086 break;
never executed: break;
0
1087 }-
1088 const QPixelLayout *layout = &qPixelLayouts[d->format];-
1089 uint result;-
1090 const uint *ptr = qFetchPixels[layout->bpp](&result, s, x, 1);-
1091 return
never executed: return *layout->convertToARGB32PM(&result, ptr, 1, layout, 0);
*layout->convertToARGB32PM(&result, ptr, 1, layout, 0);
never executed: return *layout->convertToARGB32PM(&result, ptr, 1, layout, 0);
0
1092}-
1093void QImage::setPixel(int x, int y, uint index_or_rgb)-
1094{-
1095 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| x < 0
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| x >= width()
x >= width()Description
TRUEnever evaluated
FALSEnever evaluated
|| y < 0
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| y >= height()
y >= height()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1096 QMessageLogger(__FILE__, 2308, __PRETTY_FUNCTION__).warning("QImage::setPixel: coordinate (%d,%d) out of range", x, y);-
1097 return;
never executed: return;
0
1098 }-
1099-
1100 uchar * s = scanLine(y);-
1101 switch(d->format) {-
1102 case
never executed: case Format_Mono:
Format_Mono:
never executed: case Format_Mono:
0
1103 case
never executed: case Format_MonoLSB:
Format_MonoLSB:
never executed: case Format_MonoLSB:
0
1104 if (index_or_rgb > 1
index_or_rgb > 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1105 QMessageLogger(__FILE__, 2317, __PRETTY_FUNCTION__).warning("QImage::setPixel: Index %d out of range", index_or_rgb);-
1106 }
never executed: end of block
else if (format() == Format_MonoLSB
format() == Format_MonoLSBDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1107 if (index_or_rgb==0
index_or_rgb==0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1108 *(
never executed: *(s + (x >> 3)) &= ~(1 << (x & 7));
s + (x >> 3)) &= ~(1 << (x & 7));
never executed: *(s + (x >> 3)) &= ~(1 << (x & 7));
0
1109 else-
1110 *(
never executed: *(s + (x >> 3)) |= (1 << (x & 7));
s + (x >> 3)) |= (1 << (x & 7));
never executed: *(s + (x >> 3)) |= (1 << (x & 7));
0
1111 } else {-
1112 if (index_or_rgb==0
index_or_rgb==0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1113 *(
never executed: *(s + (x >> 3)) &= ~(1 << (7-(x & 7)));
s + (x >> 3)) &= ~(1 << (7-(x & 7)));
never executed: *(s + (x >> 3)) &= ~(1 << (7-(x & 7)));
0
1114 else-
1115 *(
never executed: *(s + (x >> 3)) |= (1 << (7-(x & 7)));
s + (x >> 3)) |= (1 << (7-(x & 7)));
never executed: *(s + (x >> 3)) |= (1 << (7-(x & 7)));
0
1116 }-
1117 return;
never executed: return;
0
1118 case
never executed: case Format_Indexed8:
Format_Indexed8:
never executed: case Format_Indexed8:
0
1119 if (index_or_rgb >= (uint)d->colortable.size()
index_or_rgb >...ortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1120 QMessageLogger(__FILE__, 2332, __PRETTY_FUNCTION__).warning("QImage::setPixel: Index %d out of range", index_or_rgb);-
1121 return;
never executed: return;
0
1122 }-
1123 s[x] = index_or_rgb;-
1124 return;
never executed: return;
0
1125 case
never executed: case Format_RGB32:
Format_RGB32:
never executed: case Format_RGB32:
0
1126-
1127-
1128 ((uint *)s)[x] = 0xff000000 | index_or_rgb;-
1129 return;
never executed: return;
0
1130 case
never executed: case Format_ARGB32:
Format_ARGB32:
never executed: case Format_ARGB32:
0
1131 case
never executed: case Format_ARGB32_Premultiplied:
Format_ARGB32_Premultiplied:
never executed: case Format_ARGB32_Premultiplied:
0
1132 ((uint *)s)[x] = index_or_rgb;-
1133 return;
never executed: return;
0
1134 case
never executed: case Format_RGB16:
Format_RGB16:
never executed: case Format_RGB16:
0
1135 ((quint16 *)s)[x] = qConvertRgb32To16(qUnpremultiply(index_or_rgb));-
1136 return;
never executed: return;
0
1137 case
never executed: case Format_RGBX8888:
Format_RGBX8888:
never executed: case Format_RGBX8888:
0
1138 ((uint *)s)[x] = ARGB2RGBA(0xff000000 | index_or_rgb);-
1139 return;
never executed: return;
0
1140 case
never executed: case Format_RGBA8888:
Format_RGBA8888:
never executed: case Format_RGBA8888:
0
1141 case
never executed: case Format_RGBA8888_Premultiplied:
Format_RGBA8888_Premultiplied:
never executed: case Format_RGBA8888_Premultiplied:
0
1142 ((uint *)s)[x] = ARGB2RGBA(index_or_rgb);-
1143 return;
never executed: return;
0
1144 case
never executed: case Format_BGR30:
Format_BGR30:
never executed: case Format_BGR30:
0
1145 ((uint *)s)[x] = qConvertRgb32ToRgb30<PixelOrderBGR>(index_or_rgb);-
1146 return;
never executed: return;
0
1147 case
never executed: case Format_A2BGR30_Premultiplied:
Format_A2BGR30_Premultiplied:
never executed: case Format_A2BGR30_Premultiplied:
0
1148 ((uint *)s)[x] = qConvertArgb32ToA2rgb30<PixelOrderBGR>(index_or_rgb);-
1149 return;
never executed: return;
0
1150 case
never executed: case Format_RGB30:
Format_RGB30:
never executed: case Format_RGB30:
0
1151 ((uint *)s)[x] = qConvertRgb32ToRgb30<PixelOrderRGB>(index_or_rgb);-
1152 return;
never executed: return;
0
1153 case
never executed: case Format_A2RGB30_Premultiplied:
Format_A2RGB30_Premultiplied:
never executed: case Format_A2RGB30_Premultiplied:
0
1154 ((uint *)s)[x] = qConvertArgb32ToA2rgb30<PixelOrderRGB>(index_or_rgb);-
1155 return;
never executed: return;
0
1156 case
never executed: case Format_Invalid:
Format_Invalid:
never executed: case Format_Invalid:
0
1157 case
never executed: case NImageFormats:
NImageFormats:
never executed: case NImageFormats:
0
1158 ((!(false)) ? qt_assert("false",__FILE__,2370) : qt_noop());-
1159 return;
never executed: return;
0
1160 default
never executed: default:
:
never executed: default:
0
1161 break;
never executed: break;
0
1162 }-
1163-
1164 const QPixelLayout *layout = &qPixelLayouts[d->format];-
1165 uint result;-
1166 const uint *ptr = layout->convertFromARGB32PM(&result, &index_or_rgb, 1, layout, 0);-
1167 qStorePixels[layout->bpp](s, ptr, x, 1);-
1168}
never executed: end of block
0
1169QColor QImage::pixelColor(int x, int y) const-
1170{-
1171 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| x < 0
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| x >= d->width
x >= d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
|| y < 0
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| y >= height()
y >= height()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1172 QMessageLogger(__FILE__, 2407, __PRETTY_FUNCTION__).warning("QImage::pixelColor: coordinate (%d,%d) out of range", x, y);-
1173 return
never executed: return QColor();
QColor();
never executed: return QColor();
0
1174 }-
1175-
1176 QRgba64 c;-
1177 const uchar * s = constScanLine(y);-
1178 switch (d->format) {-
1179 case
never executed: case Format_BGR30:
Format_BGR30:
never executed: case Format_BGR30:
0
1180 case
never executed: case Format_A2BGR30_Premultiplied:
Format_A2BGR30_Premultiplied:
never executed: case Format_A2BGR30_Premultiplied:
0
1181 c = qConvertA2rgb30ToRgb64<PixelOrderBGR>(reinterpret_cast<const quint32 *>(s)[x]);-
1182 break;
never executed: break;
0
1183 case
never executed: case Format_RGB30:
Format_RGB30:
never executed: case Format_RGB30:
0
1184 case
never executed: case Format_A2RGB30_Premultiplied:
Format_A2RGB30_Premultiplied:
never executed: case Format_A2RGB30_Premultiplied:
0
1185 c = qConvertA2rgb30ToRgb64<PixelOrderRGB>(reinterpret_cast<const quint32 *>(s)[x]);-
1186 break;
never executed: break;
0
1187 default
never executed: default:
:
never executed: default:
0
1188 c = QRgba64::fromArgb32(pixel(x, y));-
1189 break;
never executed: break;
0
1190 }-
1191-
1192 if (hasAlphaChannel()
hasAlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
&& qPixelLayouts[d->format].premultiplied
qPixelLayouts[....premultipliedDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1193 c = c.unpremultiplied();
never executed: c = c.unpremultiplied();
0
1194 return
never executed: return QColor(c);
QColor(c);
never executed: return QColor(c);
0
1195}-
1196void QImage::setPixelColor(int x, int y, const QColor &color)-
1197{-
1198 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| x < 0
x < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| x >= width()
x >= width()Description
TRUEnever evaluated
FALSEnever evaluated
|| y < 0
y < 0Description
TRUEnever evaluated
FALSEnever evaluated
|| y >= height()
y >= height()Description
TRUEnever evaluated
FALSEnever evaluated
|| !color.isValid()
!color.isValid()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1199 QMessageLogger(__FILE__, 2457, __PRETTY_FUNCTION__).warning("QImage::setPixelColor: coordinate (%d,%d) out of range", x, y);-
1200 return;
never executed: return;
0
1201 }-
1202-
1203 QRgba64 c = color.rgba64();-
1204 if (!hasAlphaChannel()
!hasAlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1205 c.setAlpha(65535);
never executed: c.setAlpha(65535);
0
1206 else if (qPixelLayouts[d->format].premultiplied
qPixelLayouts[....premultipliedDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1207 c = c.premultiplied();
never executed: c = c.premultiplied();
0
1208-
1209 uchar * s = scanLine(y);-
1210 switch (d->format) {-
1211 case
never executed: case Format_Mono:
Format_Mono:
never executed: case Format_Mono:
0
1212 case
never executed: case Format_MonoLSB:
Format_MonoLSB:
never executed: case Format_MonoLSB:
0
1213 case
never executed: case Format_Indexed8:
Format_Indexed8:
never executed: case Format_Indexed8:
0
1214 QMessageLogger(__FILE__, 2472, __PRETTY_FUNCTION__).warning("QImage::setPixelColor: called on monochrome or indexed format");-
1215 return;
never executed: return;
0
1216 case
never executed: case Format_BGR30:
Format_BGR30:
never executed: case Format_BGR30:
0
1217 ((uint *)s)[x] = qConvertRgb64ToRgb30<PixelOrderBGR>(c) | 0xc0000000;-
1218 return;
never executed: return;
0
1219 case
never executed: case Format_A2BGR30_Premultiplied:
Format_A2BGR30_Premultiplied:
never executed: case Format_A2BGR30_Premultiplied:
0
1220 ((uint *)s)[x] = qConvertRgb64ToRgb30<PixelOrderBGR>(c);-
1221 return;
never executed: return;
0
1222 case
never executed: case Format_RGB30:
Format_RGB30:
never executed: case Format_RGB30:
0
1223 ((uint *)s)[x] = qConvertRgb64ToRgb30<PixelOrderRGB>(c) | 0xc0000000;-
1224 return;
never executed: return;
0
1225 case
never executed: case Format_A2RGB30_Premultiplied:
Format_A2RGB30_Premultiplied:
never executed: case Format_A2RGB30_Premultiplied:
0
1226 ((uint *)s)[x] = qConvertRgb64ToRgb30<PixelOrderRGB>(c);-
1227 return;
never executed: return;
0
1228 default
never executed: default:
:
never executed: default:
0
1229 setPixel(x, y, c.toArgb32());-
1230 return;
never executed: return;
0
1231 }-
1232}-
1233bool QImage::allGray() const-
1234{-
1235 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1236 return
never executed: return true;
true;
never executed: return true;
0
1237-
1238 switch (d->format) {-
1239 case
never executed: case Format_Mono:
Format_Mono:
never executed: case Format_Mono:
0
1240 case
never executed: case Format_MonoLSB:
Format_MonoLSB:
never executed: case Format_MonoLSB:
0
1241 case
never executed: case Format_Indexed8:
Format_Indexed8:
never executed: case Format_Indexed8:
0
1242 for (int i = 0; i < d->colortable.size()
i < d->colortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1243 if (!qIsGray(d->colortable.at(i))
!qIsGray(d->colortable.at(i))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1244 return
never executed: return false;
false;
never executed: return false;
0
1245 }
never executed: end of block
0
1246 return
never executed: return true;
true;
never executed: return true;
0
1247 case
never executed: case Format_Alpha8:
Format_Alpha8:
never executed: case Format_Alpha8:
0
1248 return
never executed: return false;
false;
never executed: return false;
0
1249 case
never executed: case Format_Grayscale8:
Format_Grayscale8:
never executed: case Format_Grayscale8:
0
1250 return
never executed: return true;
true;
never executed: return true;
0
1251 case
never executed: case Format_RGB32:
Format_RGB32:
never executed: case Format_RGB32:
0
1252 case
never executed: case Format_ARGB32:
Format_ARGB32:
never executed: case Format_ARGB32:
0
1253 case
never executed: case Format_ARGB32_Premultiplied:
Format_ARGB32_Premultiplied:
never executed: case Format_ARGB32_Premultiplied:
0
1254-
1255 case
never executed: case Format_RGBX8888:
Format_RGBX8888:
never executed: case Format_RGBX8888:
0
1256 case
never executed: case Format_RGBA8888:
Format_RGBA8888:
never executed: case Format_RGBA8888:
0
1257 case
never executed: case Format_RGBA8888_Premultiplied:
Format_RGBA8888_Premultiplied:
never executed: case Format_RGBA8888_Premultiplied:
0
1258-
1259 for (int j = 0; j < d->height
j < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; ++j) {
0
1260 const QRgb *b = (const QRgb *)constScanLine(j);-
1261 for (int i = 0; i < d->width
i < d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1262 if (!qIsGray(b[i])
!qIsGray(b[i])Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1263 return
never executed: return false;
false;
never executed: return false;
0
1264 }
never executed: end of block
0
1265 }
never executed: end of block
0
1266 return
never executed: return true;
true;
never executed: return true;
0
1267 case
never executed: case Format_RGB16:
Format_RGB16:
never executed: case Format_RGB16:
0
1268 for (int j = 0; j < d->height
j < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; ++j) {
0
1269 const quint16 *b = (const quint16 *)constScanLine(j);-
1270 for (int i = 0; i < d->width
i < d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1271 if (!qIsGray(qConvertRgb16To32(b[i]))
!qIsGray(qConv...b16To32(b[i]))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1272 return
never executed: return false;
false;
never executed: return false;
0
1273 }
never executed: end of block
0
1274 }
never executed: end of block
0
1275 return
never executed: return true;
true;
never executed: return true;
0
1276 default
never executed: default:
:
never executed: default:
0
1277 break;
never executed: break;
0
1278 }-
1279-
1280 const int buffer_size = 2048;-
1281 uint buffer[buffer_size];-
1282 const QPixelLayout *layout = &qPixelLayouts[d->format];-
1283 FetchPixelsFunc fetch = qFetchPixels[layout->bpp];-
1284 for (int j = 0; j < d->height
j < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; ++j) {
0
1285 const uchar *b = constScanLine(j);-
1286 int x = 0;-
1287 while (x < d->width
x < d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1288 int l = qMin(d->width - x, buffer_size);-
1289 const uint *ptr = fetch(buffer, b, x, l);-
1290 ptr = layout->convertToARGB32PM(buffer, ptr, l, layout, 0);-
1291 for (int i = 0; i < l
i < lDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1292 if (!qIsGray(ptr[i])
!qIsGray(ptr[i])Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1293 return
never executed: return false;
false;
never executed: return false;
0
1294 }
never executed: end of block
0
1295 x += l;-
1296 }
never executed: end of block
0
1297 }
never executed: end of block
0
1298 return
never executed: return true;
true;
never executed: return true;
0
1299}-
1300bool QImage::isGrayscale() const-
1301{-
1302 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1303 return
never executed: return false;
false;
never executed: return false;
0
1304-
1305 if (d->format == QImage::Format_Alpha8
d->format == Q...:Format_Alpha8Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1306 return
never executed: return false;
false;
never executed: return false;
0
1307-
1308 if (d->format == QImage::Format_Grayscale8
d->format == Q...mat_Grayscale8Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1309 return
never executed: return true;
true;
never executed: return true;
0
1310-
1311 switch (depth()) {-
1312 case
never executed: case 32:
32:
never executed: case 32:
0
1313 case
never executed: case 24:
24:
never executed: case 24:
0
1314 case
never executed: case 16:
16:
never executed: case 16:
0
1315 return
never executed: return allGray();
allGray();
never executed: return allGray();
0
1316 case
never executed: case 8:
8:
never executed: case 8:
{
0
1317 ((!(d->format == QImage::Format_Indexed8)) ? qt_assert("d->format == QImage::Format_Indexed8",__FILE__,2595) : qt_noop());-
1318 for (int i = 0; i < colorCount()
i < colorCount()Description
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
1319 if (d->colortable.at(i) != qRgb(i,i,i)
d->colortable....!= qRgb(i,i,i)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1320 return
never executed: return false;
false;
never executed: return false;
0
1321 return
never executed: return true;
true;
never executed: return true;
0
1322 }-
1323 }-
1324 return
never executed: return false;
false;
never executed: return false;
0
1325}-
1326QImage QImage::scaled(const QSize& s, Qt::AspectRatioMode aspectMode, Qt::TransformationMode mode) const-
1327{-
1328 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1329 QMessageLogger(__FILE__, 2646, __PRETTY_FUNCTION__).warning("QImage::scaled: Image is a null image");-
1330 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1331 }-
1332 if (s.isEmpty()
s.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1333 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1334-
1335 QSize newSize = size();-
1336 newSize.scale(s, aspectMode);-
1337 newSize.rwidth() = qMax(newSize.width(), 1);-
1338 newSize.rheight() = qMax(newSize.height(), 1);-
1339 if (newSize == size()
newSize == size()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1340 return
never executed: return *this;
*this;
never executed: return *this;
0
1341-
1342 QTransform wm = QTransform::fromScale((qreal)newSize.width() / width(), (qreal)newSize.height() / height());-
1343 QImage img = transformed(wm, mode);-
1344 return
never executed: return img;
img;
never executed: return img;
0
1345}-
1346QImage QImage::scaledToWidth(int w, Qt::TransformationMode mode) const-
1347{-
1348 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1349 QMessageLogger(__FILE__, 2681, __PRETTY_FUNCTION__).warning("QImage::scaleWidth: Image is a null image");-
1350 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1351 }-
1352 if (w <= 0
w <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1353 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1354-
1355 qreal factor = (qreal) w / width();-
1356 QTransform wm = QTransform::fromScale(factor, factor);-
1357 return
never executed: return transformed(wm, mode);
transformed(wm, mode);
never executed: return transformed(wm, mode);
0
1358}-
1359QImage QImage::scaledToHeight(int h, Qt::TransformationMode mode) const-
1360{-
1361 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1362 QMessageLogger(__FILE__, 2709, __PRETTY_FUNCTION__).warning("QImage::scaleHeight: Image is a null image");-
1363 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1364 }-
1365 if (h <= 0
h <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1366 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1367-
1368 qreal factor = (qreal) h / height();-
1369 QTransform wm = QTransform::fromScale(factor, factor);-
1370 return
never executed: return transformed(wm, mode);
transformed(wm, mode);
never executed: return transformed(wm, mode);
0
1371}-
1372QMatrix QImage::trueMatrix(const QMatrix &matrix, int w, int h)-
1373{-
1374 return
never executed: return trueMatrix(QTransform(matrix), w, h).toAffine();
trueMatrix(QTransform(matrix), w, h).toAffine();
never executed: return trueMatrix(QTransform(matrix), w, h).toAffine();
0
1375}-
1376QImage QImage::transformed(const QMatrix &matrix, Qt::TransformationMode mode) const-
1377{-
1378 return
never executed: return transformed(QTransform(matrix), mode);
transformed(QTransform(matrix), mode);
never executed: return transformed(QTransform(matrix), mode);
0
1379}-
1380QImage QImage::createAlphaMask(Qt::ImageConversionFlags flags) const-
1381{-
1382 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| d->format == QImage::Format_RGB32
d->format == Q...::Format_RGB32Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1383 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1384-
1385 if (d->depth == 1
d->depth == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1386-
1387-
1388 return
never executed: return convertToFormat(Format_Indexed8, flags).createAlphaMask(flags);
convertToFormat(Format_Indexed8, flags).createAlphaMask(flags);
never executed: return convertToFormat(Format_Indexed8, flags).createAlphaMask(flags);
0
1389 }-
1390-
1391 QImage mask(d->width, d->height, Format_MonoLSB);-
1392 if (!mask.isNull()
!mask.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1393 dither_to_Mono(mask.d, d, flags, true);
never executed: dither_to_Mono(mask.d, d, flags, true);
0
1394 return
never executed: return mask;
mask;
never executed: return mask;
0
1395}-
1396QImage QImage::createHeuristicMask(bool clipTight) const-
1397{-
1398 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1399 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1400-
1401 if (d->depth != 32
d->depth != 32Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1402 QImage img32 = convertToFormat(Format_RGB32);-
1403 return
never executed: return img32.createHeuristicMask(clipTight);
img32.createHeuristicMask(clipTight);
never executed: return img32.createHeuristicMask(clipTight);
0
1404 }-
1405-
1406-
1407-
1408 int w = width();-
1409 int h = height();-
1410 QImage m(w, h, Format_MonoLSB);-
1411 if ((
(m).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
m).isNull()
(m).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 2834, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
1412 m.setColorCount(2);-
1413 m.setColor(0, QColor(Qt::color0).rgba());-
1414 m.setColor(1, QColor(Qt::color1).rgba());-
1415 m.fill(0xff);-
1416-
1417 QRgb background = (*((const QRgb*)scanLine(0)+0) & 0x00ffffff);-
1418 if (background != (*((const QRgb*)scanLine(0)+w-1) & 0x00ffffff)
background != ... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1419 background != (*((const QRgb*)scanLine(h-1)+0) & 0x00ffffff)
background != ... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1420 background != (*((const QRgb*)scanLine(h-1)+w-1) & 0x00ffffff)
background != ... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1421 background = (*((const QRgb*)scanLine(0)+w-1) & 0x00ffffff);-
1422 if (background != (*((const QRgb*)scanLine(h-1)+w-1) & 0x00ffffff)
background != ... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1423 background != (*((const QRgb*)scanLine(h-1)+0) & 0x00ffffff)
background != ... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1424 (*((const
(*((const QRgb... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
QRgb*)scanLine(h-1)+0) & 0x00ffffff) == (*((const QRgb*)scanLine(h-1)+w-1) & 0x00ffffff)
(*((const QRgb... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1425 background = (*((const QRgb*)scanLine(h-1)+w-1) & 0x00ffffff);-
1426 }
never executed: end of block
0
1427 }
never executed: end of block
0
1428-
1429 int x,y;-
1430 bool done = false;-
1431 uchar *ypp, *ypc, *ypn;-
1432 while(!done
!doneDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1433 done = true;-
1434 ypn = m.scanLine(0);-
1435 ypc = 0;-
1436 for (y = 0; y < h
y < hDescription
TRUEnever evaluated
FALSEnever evaluated
; y++) {
0
1437 ypp = ypc;-
1438 ypc = ypn;-
1439 ypn = (
(y == h-1)Description
TRUEnever evaluated
FALSEnever evaluated
y == h-1)
(y == h-1)Description
TRUEnever evaluated
FALSEnever evaluated
? 0 : m.scanLine(y+1);
0
1440 const QRgb *p = (const QRgb *)scanLine(y);-
1441 for (x = 0; x < w
x < wDescription
TRUEnever evaluated
FALSEnever evaluated
; x++) {
0
1442-
1443-
1444 if ((x == 0
x == 0Description
TRUEnever evaluated
FALSEnever evaluated
|| y == 0
y == 0Description
TRUEnever evaluated
FALSEnever evaluated
|| x == w-1
x == w-1Description
TRUEnever evaluated
FALSEnever evaluated
|| y == h-1
y == h-1Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1445 !(*(ypc + ((x-1) >> 3)) & (1 << ((x-1) & 7)))
!(*(ypc + ((x-... ((x-1) & 7)))Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1446 !(*(ypc + ((x+1) >> 3)) & (1 << ((x+1) & 7)))
!(*(ypc + ((x+... ((x+1) & 7)))Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1447 !(*(ypp + (x >> 3)) & (1 << (x & 7)))
!(*(ypp + (x >...1 << (x & 7)))Description
TRUEnever evaluated
FALSEnever evaluated
||
0
1448 !(*(ypn + (x >> 3)) & (1 << (x & 7)))
!(*(ypn + (x >...1 << (x & 7)))Description
TRUEnever evaluated
FALSEnever evaluated
) &&
0
1449 (
( (*(ypc + (x ... << (x & 7))))Description
TRUEnever evaluated
FALSEnever evaluated
(*(ypc + (x >> 3)) & (1 << (x & 7))))
( (*(ypc + (x ... << (x & 7))))Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
1450 ((*
((*p & 0x00fff...== background)Description
TRUEnever evaluated
FALSEnever evaluated
p & 0x00ffffff) == background)
((*p & 0x00fff...== background)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1451 done = false;-
1452 *(ypc + (x >> 3)) &= ~(1 << (x & 7));-
1453 }
never executed: end of block
0
1454 p++;-
1455 }
never executed: end of block
0
1456 }
never executed: end of block
0
1457 }
never executed: end of block
0
1458-
1459 if (!clipTight
!clipTightDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1460 ypn = m.scanLine(0);-
1461 ypc = 0;-
1462 for (y = 0; y < h
y < hDescription
TRUEnever evaluated
FALSEnever evaluated
; y++) {
0
1463 ypp = ypc;-
1464 ypc = ypn;-
1465 ypn = (
(y == h-1)Description
TRUEnever evaluated
FALSEnever evaluated
y == h-1)
(y == h-1)Description
TRUEnever evaluated
FALSEnever evaluated
? 0 : m.scanLine(y+1);
0
1466 const QRgb *p = (const QRgb *)scanLine(y);-
1467 for (x = 0; x < w
x < wDescription
TRUEnever evaluated
FALSEnever evaluated
; x++) {
0
1468 if ((*
(*p & 0x00ffff... != backgroundDescription
TRUEnever evaluated
FALSEnever evaluated
p & 0x00ffffff) != background
(*p & 0x00ffff... != backgroundDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1469 if (x > 0
x > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1470 *(
never executed: *(ypc + ((x-1) >> 3)) |= (1 << ((x-1) & 7));
ypc + ((x-1) >> 3)) |= (1 << ((x-1) & 7));
never executed: *(ypc + ((x-1) >> 3)) |= (1 << ((x-1) & 7));
0
1471 if (x < w-1
x < w-1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1472 *(
never executed: *(ypc + ((x+1) >> 3)) |= (1 << ((x+1) & 7));
ypc + ((x+1) >> 3)) |= (1 << ((x+1) & 7));
never executed: *(ypc + ((x+1) >> 3)) |= (1 << ((x+1) & 7));
0
1473 if (y > 0
y > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1474 *(
never executed: *(ypp + (x >> 3)) |= (1 << (x & 7));
ypp + (x >> 3)) |= (1 << (x & 7));
never executed: *(ypp + (x >> 3)) |= (1 << (x & 7));
0
1475 if (y < h-1
y < h-1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1476 *(
never executed: *(ypn + (x >> 3)) |= (1 << (x & 7));
ypn + (x >> 3)) |= (1 << (x & 7));
never executed: *(ypn + (x >> 3)) |= (1 << (x & 7));
0
1477 }
never executed: end of block
0
1478 p++;-
1479 }
never executed: end of block
0
1480 }
never executed: end of block
0
1481 }
never executed: end of block
0
1482-
1483-
1484-
1485 return
never executed: return m;
m;
never executed: return m;
0
1486}-
1487QImage QImage::createMaskFromColor(QRgb color, Qt::MaskMode mode) const-
1488{-
1489 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1490 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1491 QImage maskImage(size(), QImage::Format_MonoLSB);-
1492 if ((
(maskImage).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
maskImage).isNull()
(maskImage).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 2927, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
1493 maskImage.fill(0);-
1494 uchar *s = maskImage.bits();-
1495-
1496 if (depth() == 32
depth() == 32Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1497 for (int h = 0; h < d->height
h < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; h++) {
0
1498 const uint *sl = (const uint *) scanLine(h);-
1499 for (int w = 0; w < d->width
w < d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
; w++) {
0
1500 if (sl[w] == color
sl[w] == colorDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1501 *(
never executed: *(s + (w >> 3)) |= (1 << (w & 7));
s + (w >> 3)) |= (1 << (w & 7));
never executed: *(s + (w >> 3)) |= (1 << (w & 7));
0
1502 }
never executed: end of block
0
1503 s += maskImage.bytesPerLine();-
1504 }
never executed: end of block
0
1505 }
never executed: end of block
else {
0
1506 for (int h = 0; h < d->height
h < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; h++) {
0
1507 for (int w = 0; w < d->width
w < d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
; w++) {
0
1508 if ((
(uint) pixel(w, h) == colorDescription
TRUEnever evaluated
FALSEnever evaluated
uint) pixel(w, h) == color
(uint) pixel(w, h) == colorDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1509 *(
never executed: *(s + (w >> 3)) |= (1 << (w & 7));
s + (w >> 3)) |= (1 << (w & 7));
never executed: *(s + (w >> 3)) |= (1 << (w & 7));
0
1510 }
never executed: end of block
0
1511 s += maskImage.bytesPerLine();-
1512 }
never executed: end of block
0
1513 }
never executed: end of block
0
1514 if (mode == Qt::MaskOutColor
mode == Qt::MaskOutColorDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1515 maskImage.invertPixels();
never executed: maskImage.invertPixels();
0
1516 return
never executed: return maskImage;
maskImage;
never executed: return maskImage;
0
1517}-
1518template<class T> inline void do_mirror_data(QImageData *dst, QImageData *src,-
1519 int dstX0, int dstY0,-
1520 int dstXIncr, int dstYIncr,-
1521 int w, int h)-
1522{-
1523 if (dst == src
dst == srcDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1524-
1525-
1526 const int srcXEnd = (dstX0 && !dstY0) ? w / 2 : w;-
1527 const int srcYEnd = dstY0 ? h / 2 : h;-
1528 for (int srcY = 0, dstY = dstY0; srcY < srcYEnd
srcY < srcYEndDescription
TRUEnever evaluated
FALSEnever evaluated
; ++srcY, dstY += dstYIncr) {
0
1529 T *srcPtr = (T *) (src->data + srcY * src->bytes_per_line);-
1530 T *dstPtr = (T *) (dst->data + dstY * dst->bytes_per_line);-
1531 for (int srcX = 0, dstX = dstX0; srcX < srcXEnd
srcX < srcXEndDescription
TRUEnever evaluated
FALSEnever evaluated
; ++srcX, dstX += dstXIncr)
0
1532 std::swap(srcPtr[srcX], dstPtr[dstX]);
never executed: std::swap(srcPtr[srcX], dstPtr[dstX]);
0
1533 }
never executed: end of block
0
1534-
1535 if (dstX0
dstX0Description
TRUEnever evaluated
FALSEnever evaluated
&& dstY0
dstY0Description
TRUEnever evaluated
FALSEnever evaluated
&& (
(h & 1)Description
TRUEnever evaluated
FALSEnever evaluated
h & 1)
(h & 1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1536 int srcY = h / 2;-
1537 int srcXEnd2 = w / 2;-
1538 T *srcPtr = (T *) (src->data + srcY * src->bytes_per_line);-
1539 for (int srcX = 0, dstX = dstX0; srcX < srcXEnd2
srcX < srcXEnd2Description
TRUEnever evaluated
FALSEnever evaluated
; ++srcX, dstX += dstXIncr)
0
1540 std::swap(srcPtr[srcX], srcPtr[dstX]);
never executed: std::swap(srcPtr[srcX], srcPtr[dstX]);
0
1541 }
never executed: end of block
0
1542 }
never executed: end of block
else {
0
1543 for (int srcY = 0, dstY = dstY0; srcY < h
srcY < hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++srcY, dstY += dstYIncr) {
0
1544 T *srcPtr = (T *) (src->data + srcY * src->bytes_per_line);-
1545 T *dstPtr = (T *) (dst->data + dstY * dst->bytes_per_line);-
1546 for (int srcX = 0, dstX = dstX0; srcX < w
srcX < wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++srcX, dstX += dstXIncr)
0
1547 dstPtr[dstX] = srcPtr[srcX];
never executed: dstPtr[dstX] = srcPtr[srcX];
0
1548 }
never executed: end of block
0
1549 }
never executed: end of block
0
1550}-
1551-
1552inline void do_mirror(QImageData *dst, QImageData *src, bool horizontal, bool vertical)-
1553{-
1554 ((!(src->width == dst->width && src->height == dst->height && src->depth == dst->depth)) ? qt_assert("src->width == dst->width && src->height == dst->height && src->depth == dst->depth",__FILE__,3001) : qt_noop());-
1555 int w = src->width;-
1556 int h = src->height;-
1557 int depth = src->depth;-
1558-
1559 if (src->depth == 1
src->depth == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1560 w = (w + 7) / 8;-
1561 depth = 8;-
1562 }
never executed: end of block
0
1563-
1564 int dstX0 = 0, dstXIncr = 1;-
1565 int dstY0 = 0, dstYIncr = 1;-
1566 if (horizontal
horizontalDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1567-
1568 dstX0 = w - 1;-
1569 dstXIncr = -1;-
1570 }
never executed: end of block
0
1571 if (vertical
verticalDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1572-
1573 dstY0 = h - 1;-
1574 dstYIncr = -1;-
1575 }
never executed: end of block
0
1576-
1577 switch (depth) {-
1578 case
never executed: case 32:
32:
never executed: case 32:
0
1579 do_mirror_data<quint32>(dst, src, dstX0, dstY0, dstXIncr, dstYIncr, w, h);-
1580 break;
never executed: break;
0
1581 case
never executed: case 24:
24:
never executed: case 24:
0
1582 do_mirror_data<quint24>(dst, src, dstX0, dstY0, dstXIncr, dstYIncr, w, h);-
1583 break;
never executed: break;
0
1584 case
never executed: case 16:
16:
never executed: case 16:
0
1585 do_mirror_data<quint16>(dst, src, dstX0, dstY0, dstXIncr, dstYIncr, w, h);-
1586 break;
never executed: break;
0
1587 case
never executed: case 8:
8:
never executed: case 8:
0
1588 do_mirror_data<quint8>(dst, src, dstX0, dstY0, dstXIncr, dstYIncr, w, h);-
1589 break;
never executed: break;
0
1590 default
never executed: default:
:
never executed: default:
0
1591 ((!(false)) ? qt_assert("false",__FILE__,3038) : qt_noop());-
1592 break;
never executed: break;
0
1593 }-
1594-
1595-
1596-
1597 if (horizontal
horizontalDescription
TRUEnever evaluated
FALSEnever evaluated
&& dst->depth == 1
dst->depth == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1598 ((!(dst->format == QImage::Format_Mono || dst->format == QImage::Format_MonoLSB)) ? qt_assert("dst->format == QImage::Format_Mono || dst->format == QImage::Format_MonoLSB",__FILE__,3045) : qt_noop());-
1599 const int shift = 8 - (dst->width % 8);-
1600 const uchar *bitflip = qt_get_bitflip_array();-
1601 for (int y = 0; y < h
y < hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
1602 uchar *begin = dst->data + y * dst->bytes_per_line;-
1603 uchar *end = begin + dst->bytes_per_line;-
1604 for (uchar *p = begin; p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
; ++p) {
0
1605 *p = bitflip[*p];-
1606-
1607-
1608 if (shift != 8
shift != 8Description
TRUEnever evaluated
FALSEnever evaluated
&& p != begin
p != beginDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1609 if (dst->format == QImage::Format_Mono
dst->format ==...e::Format_MonoDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1610 for (int i = 0; i < shift
i < shiftDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1611 p[-1] <<= 1;-
1612 p[-1] |= (*p & (128 >> i)) >> (7 - i);-
1613 }
never executed: end of block
0
1614 }
never executed: end of block
else {
0
1615 for (int i = 0; i < shift
i < shiftDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1616 p[-1] >>= 1;-
1617 p[-1] |= (*p & (1 << i)) << (7 - i);-
1618 }
never executed: end of block
0
1619 }
never executed: end of block
0
1620 }-
1621 }
never executed: end of block
0
1622 if (shift != 8
shift != 8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1623 if (dst->format == QImage::Format_Mono
dst->format ==...e::Format_MonoDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1624 end[-1] <<= shift;
never executed: end[-1] <<= shift;
0
1625 else-
1626 end[-1] >>= shift;
never executed: end[-1] >>= shift;
0
1627 }-
1628 }
never executed: end of block
0
1629 }
never executed: end of block
0
1630}
never executed: end of block
0
1631-
1632-
1633-
1634-
1635QImage QImage::mirrored_helper(bool horizontal, bool vertical) const-
1636{-
1637 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1638 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1639-
1640 if ((d->width <= 1
d->width <= 1Description
TRUEnever evaluated
FALSEnever evaluated
&& d->height <= 1
d->height <= 1Description
TRUEnever evaluated
FALSEnever evaluated
) || (!horizontal
!horizontalDescription
TRUEnever evaluated
FALSEnever evaluated
&& !vertical
!verticalDescription
TRUEnever evaluated
FALSEnever evaluated
))
0
1641 return
never executed: return *this;
*this;
never executed: return *this;
0
1642-
1643-
1644 QImage result(d->width, d->height, d->format);-
1645 if ((
(result).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
result).isNull()
(result).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 3092, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
1646-
1647-
1648 if (!result.d
!result.dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1649 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
1650-
1651 result.d->colortable = d->colortable;-
1652 result.d->has_alpha_clut = d->has_alpha_clut;-
1653 copyMetadata(result.d, d);-
1654-
1655 do_mirror(result.d, d, horizontal, vertical);-
1656-
1657 return
never executed: return result;
result;
never executed: return result;
0
1658}-
1659-
1660-
1661-
1662-
1663void QImage::mirrored_inplace(bool horizontal, bool vertical)-
1664{-
1665 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| (d->width <= 1
d->width <= 1Description
TRUEnever evaluated
FALSEnever evaluated
&& d->height <= 1
d->height <= 1Description
TRUEnever evaluated
FALSEnever evaluated
) || (!horizontal
!horizontalDescription
TRUEnever evaluated
FALSEnever evaluated
&& !vertical
!verticalDescription
TRUEnever evaluated
FALSEnever evaluated
))
0
1666 return;
never executed: return;
0
1667-
1668 detach();-
1669 if (!d->own_data
!d->own_dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1670 *
never executed: *this = copy();
this = copy();
never executed: *this = copy();
0
1671-
1672 do_mirror(d, d, horizontal, vertical);-
1673}
never executed: end of block
0
1674inline void rgbSwapped_generic(int width, int height, const QImage *src, QImage *dst, const QPixelLayout* layout)-
1675{-
1676 ((!(layout->redWidth == layout->blueWidth)) ? qt_assert("layout->redWidth == layout->blueWidth",__FILE__,3135) : qt_noop());-
1677 FetchPixelsFunc fetch = qFetchPixels[layout->bpp];-
1678 StorePixelsFunc store = qStorePixels[layout->bpp];-
1679-
1680 const uint redBlueMask = (1 << layout->redWidth) - 1;-
1681 const uint alphaGreenMask = (((1 << layout->alphaWidth) - 1) << layout->alphaShift)-
1682 | (((1 << layout->greenWidth) - 1) << layout->greenShift);-
1683-
1684 const int buffer_size = 2048;-
1685 uint buffer[buffer_size];-
1686 for (int i = 0; i < height
i < heightDescription
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1687 uchar *q = dst->scanLine(i);-
1688 const uchar *p = src->constScanLine(i);-
1689 int x = 0;-
1690 while (x < width
x < widthDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1691 int l = qMin(width - x, buffer_size);-
1692 const uint *ptr = fetch(buffer, p, x, l);-
1693 for (int j = 0; j < l
j < lDescription
TRUEnever evaluated
FALSEnever evaluated
; ++j) {
0
1694 uint red = (ptr[j] >> layout->redShift) & redBlueMask;-
1695 uint blue = (ptr[j] >> layout->blueShift) & redBlueMask;-
1696 buffer[j] = (ptr[j] & alphaGreenMask)-
1697 | (red << layout->blueShift)-
1698 | (blue << layout->redShift);-
1699 }
never executed: end of block
0
1700 store(q, buffer, x, l);-
1701 x += l;-
1702 }
never executed: end of block
0
1703 }
never executed: end of block
0
1704}
never executed: end of block
0
1705-
1706-
1707-
1708-
1709QImage QImage::rgbSwapped_helper() const-
1710{-
1711 if (isNull()
isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1712 return
never executed: return *this;
*this;
never executed: return *this;
0
1713-
1714 QImage res;-
1715-
1716 switch (d->format) {-
1717 case
never executed: case Format_Invalid:
Format_Invalid:
never executed: case Format_Invalid:
0
1718 case
never executed: case NImageFormats:
NImageFormats:
never executed: case NImageFormats:
0
1719 ((!(false)) ? qt_assert("false",__FILE__,3178) : qt_noop());-
1720 break;
never executed: break;
0
1721 case
never executed: case Format_Alpha8:
Format_Alpha8:
never executed: case Format_Alpha8:
0
1722 case
never executed: case Format_Grayscale8:
Format_Grayscale8:
never executed: case Format_Grayscale8:
0
1723 return
never executed: return *this;
*this;
never executed: return *this;
0
1724 case
never executed: case Format_Mono:
Format_Mono:
never executed: case Format_Mono:
0
1725 case
never executed: case Format_MonoLSB:
Format_MonoLSB:
never executed: case Format_MonoLSB:
0
1726 case
never executed: case Format_Indexed8:
Format_Indexed8:
never executed: case Format_Indexed8:
0
1727 res = copy();-
1728 for (int i = 0; i < res.d->colortable.size()
i < res.d->colortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1729 QRgb c = res.d->colortable.at(i);-
1730 res.d->colortable[i] = QRgb(((c << 16) & 0xff0000) | ((c >> 16) & 0xff) | (c & 0xff00ff00));-
1731 }
never executed: end of block
0
1732 break;
never executed: break;
0
1733 case
never executed: case Format_RGB32:
Format_RGB32:
never executed: case Format_RGB32:
0
1734 case
never executed: case Format_ARGB32:
Format_ARGB32:
never executed: case Format_ARGB32:
0
1735 case
never executed: case Format_ARGB32_Premultiplied:
Format_ARGB32_Premultiplied:
never executed: case Format_ARGB32_Premultiplied:
0
1736-
1737 case
never executed: case Format_RGBX8888:
Format_RGBX8888:
never executed: case Format_RGBX8888:
0
1738 case
never executed: case Format_RGBA8888:
Format_RGBA8888:
never executed: case Format_RGBA8888:
0
1739 case
never executed: case Format_RGBA8888_Premultiplied:
Format_RGBA8888_Premultiplied:
never executed: case Format_RGBA8888_Premultiplied:
0
1740-
1741 res = QImage(d->width, d->height, d->format);-
1742 if ((
(res).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
res).isNull()
(res).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 3201, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
1743 for (int i = 0; i < d->height
i < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1744 uint *q = (uint*)res.scanLine(i);-
1745 const uint *p = (const uint*)constScanLine(i);-
1746 const uint *end = p + d->width;-
1747 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1748 uint c = *p;-
1749 *q = ((c << 16) & 0xff0000) | ((c >> 16) & 0xff) | (c & 0xff00ff00);-
1750 p++;-
1751 q++;-
1752 }
never executed: end of block
0
1753 }
never executed: end of block
0
1754 break;
never executed: break;
0
1755 case
never executed: case Format_RGB16:
Format_RGB16:
never executed: case Format_RGB16:
0
1756 res = QImage(d->width, d->height, d->format);-
1757 if ((
(res).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
res).isNull()
(res).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 3216, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
1758 for (int i = 0; i < d->height
i < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1759 ushort *q = (ushort*)res.scanLine(i);-
1760 const ushort *p = (const ushort*)constScanLine(i);-
1761 const ushort *end = p + d->width;-
1762 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1763 ushort c = *p;-
1764 *q = ((c << 11) & 0xf800) | ((c >> 11) & 0x1f) | (c & 0x07e0);-
1765 p++;-
1766 q++;-
1767 }
never executed: end of block
0
1768 }
never executed: end of block
0
1769 break;
never executed: break;
0
1770 case
never executed: case Format_BGR30:
Format_BGR30:
never executed: case Format_BGR30:
0
1771 case
never executed: case Format_A2BGR30_Premultiplied:
Format_A2BGR30_Premultiplied:
never executed: case Format_A2BGR30_Premultiplied:
0
1772 case
never executed: case Format_RGB30:
Format_RGB30:
never executed: case Format_RGB30:
0
1773 case
never executed: case Format_A2RGB30_Premultiplied:
Format_A2RGB30_Premultiplied:
never executed: case Format_A2RGB30_Premultiplied:
0
1774 res = QImage(d->width, d->height, d->format);-
1775 if ((
(res).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
res).isNull()
(res).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 3234, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
1776 for (int i = 0; i < d->height
i < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1777 uint *q = (uint*)res.scanLine(i);-
1778 const uint *p = (const uint*)constScanLine(i);-
1779 const uint *end = p + d->width;-
1780 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1781 *q = qRgbSwapRgb30(*p);-
1782 p++;-
1783 q++;-
1784 }
never executed: end of block
0
1785 }
never executed: end of block
0
1786 break;
never executed: break;
0
1787 default
never executed: default:
:
never executed: default:
0
1788 res = QImage(d->width, d->height, d->format);-
1789 rgbSwapped_generic(d->width, d->height, this, &res, &qPixelLayouts[d->format]);-
1790 break;
never executed: break;
0
1791 }-
1792 copyMetadata(res.d, d);-
1793 return
never executed: return res;
res;
never executed: return res;
0
1794}-
1795-
1796-
1797-
1798-
1799void QImage::rgbSwapped_inplace()-
1800{-
1801 if (isNull()
isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1802 return;
never executed: return;
0
1803-
1804 detach();-
1805 if (!d->own_data
!d->own_dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1806 *
never executed: *this = copy();
this = copy();
never executed: *this = copy();
0
1807-
1808 switch (d->format) {-
1809 case
never executed: case Format_Invalid:
Format_Invalid:
never executed: case Format_Invalid:
0
1810 case
never executed: case NImageFormats:
NImageFormats:
never executed: case NImageFormats:
0
1811 ((!(false)) ? qt_assert("false",__FILE__,3270) : qt_noop());-
1812 break;
never executed: break;
0
1813 case
never executed: case Format_Alpha8:
Format_Alpha8:
never executed: case Format_Alpha8:
0
1814 case
never executed: case Format_Grayscale8:
Format_Grayscale8:
never executed: case Format_Grayscale8:
0
1815 return;
never executed: return;
0
1816 case
never executed: case Format_Mono:
Format_Mono:
never executed: case Format_Mono:
0
1817 case
never executed: case Format_MonoLSB:
Format_MonoLSB:
never executed: case Format_MonoLSB:
0
1818 case
never executed: case Format_Indexed8:
Format_Indexed8:
never executed: case Format_Indexed8:
0
1819 for (int i = 0; i < d->colortable.size()
i < d->colortable.size()Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1820 QRgb c = d->colortable.at(i);-
1821 d->colortable[i] = QRgb(((c << 16) & 0xff0000) | ((c >> 16) & 0xff) | (c & 0xff00ff00));-
1822 }
never executed: end of block
0
1823 break;
never executed: break;
0
1824 case
never executed: case Format_RGB32:
Format_RGB32:
never executed: case Format_RGB32:
0
1825 case
never executed: case Format_ARGB32:
Format_ARGB32:
never executed: case Format_ARGB32:
0
1826 case
never executed: case Format_ARGB32_Premultiplied:
Format_ARGB32_Premultiplied:
never executed: case Format_ARGB32_Premultiplied:
0
1827-
1828 case
never executed: case Format_RGBX8888:
Format_RGBX8888:
never executed: case Format_RGBX8888:
0
1829 case
never executed: case Format_RGBA8888:
Format_RGBA8888:
never executed: case Format_RGBA8888:
0
1830 case
never executed: case Format_RGBA8888_Premultiplied:
Format_RGBA8888_Premultiplied:
never executed: case Format_RGBA8888_Premultiplied:
0
1831-
1832 for (int i = 0; i < d->height
i < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1833 uint *p = (uint*)scanLine(i);-
1834 uint *end = p + d->width;-
1835 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1836 uint c = *p;-
1837 *p = ((c << 16) & 0xff0000) | ((c >> 16) & 0xff) | (c & 0xff00ff00);-
1838 p++;-
1839 }
never executed: end of block
0
1840 }
never executed: end of block
0
1841 break;
never executed: break;
0
1842 case
never executed: case Format_RGB16:
Format_RGB16:
never executed: case Format_RGB16:
0
1843 for (int i = 0; i < d->height
i < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1844 ushort *p = (ushort*)scanLine(i);-
1845 ushort *end = p + d->width;-
1846 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1847 ushort c = *p;-
1848 *p = ((c << 11) & 0xf800) | ((c >> 11) & 0x1f) | (c & 0x07e0);-
1849 p++;-
1850 }
never executed: end of block
0
1851 }
never executed: end of block
0
1852 break;
never executed: break;
0
1853 case
never executed: case Format_BGR30:
Format_BGR30:
never executed: case Format_BGR30:
0
1854 case
never executed: case Format_A2BGR30_Premultiplied:
Format_A2BGR30_Premultiplied:
never executed: case Format_A2BGR30_Premultiplied:
0
1855 case
never executed: case Format_RGB30:
Format_RGB30:
never executed: case Format_RGB30:
0
1856 case
never executed: case Format_A2RGB30_Premultiplied:
Format_A2RGB30_Premultiplied:
never executed: case Format_A2RGB30_Premultiplied:
0
1857 for (int i = 0; i < d->height
i < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
1858 uint *p = (uint*)scanLine(i);-
1859 uint *end = p + d->width;-
1860 while (p < end
p < endDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1861 *p = qRgbSwapRgb30(*p);-
1862 p++;-
1863 }
never executed: end of block
0
1864 }
never executed: end of block
0
1865 break;
never executed: break;
0
1866 default
never executed: default:
:
never executed: default:
0
1867 rgbSwapped_generic(d->width, d->height, this, this, &qPixelLayouts[d->format]);-
1868 break;
never executed: break;
0
1869 }-
1870}-
1871bool QImage::load(const QString &fileName, const char* format)-
1872{-
1873 QImage image = QImageReader(fileName, format).read();-
1874 operator=(image);-
1875 return
never executed: return !isNull();
!isNull();
never executed: return !isNull();
0
1876}-
1877bool QImage::load(QIODevice* device, const char* format)-
1878{-
1879 QImage image = QImageReader(device, format).read();-
1880 operator=(image);-
1881 return
never executed: return !isNull();
!isNull();
never executed: return !isNull();
0
1882}-
1883bool QImage::loadFromData(const uchar *data, int len, const char *format)-
1884{-
1885 QImage image = fromData(data, len, format);-
1886 operator=(image);-
1887 return
never executed: return !isNull();
!isNull();
never executed: return !isNull();
0
1888}-
1889QImage QImage::fromData(const uchar *data, int size, const char *format)-
1890{-
1891 QByteArray a = QByteArray::fromRawData(reinterpret_cast<const char *>(data), size);-
1892 QBuffer b;-
1893 b.setData(a);-
1894 b.open(QIODevice::ReadOnly);-
1895 return
never executed: return QImageReader(&b, format).read();
QImageReader(&b, format).read();
never executed: return QImageReader(&b, format).read();
0
1896}-
1897bool QImage::save(const QString &fileName, const char *format, int quality) const-
1898{-
1899 if (isNull()
isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1900 return
never executed: return false;
false;
never executed: return false;
0
1901 QImageWriter writer(fileName, format);-
1902 return
never executed: return d->doImageIO(this, &writer, quality);
d->doImageIO(this, &writer, quality);
never executed: return d->doImageIO(this, &writer, quality);
0
1903}-
1904bool QImage::save(QIODevice* device, const char* format, int quality) const-
1905{-
1906 if (isNull()
isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1907 return
never executed: return false;
false;
never executed: return false;
0
1908 QImageWriter writer(device, format);-
1909 return
never executed: return d->doImageIO(this, &writer, quality);
d->doImageIO(this, &writer, quality);
never executed: return d->doImageIO(this, &writer, quality);
0
1910}-
1911-
1912-
1913-
1914-
1915bool QImageData::doImageIO(const QImage *image, QImageWriter *writer, int quality) const-
1916{-
1917 if (quality > 100
quality > 100Description
TRUEnever evaluated
FALSEnever evaluated
|| quality < -1
quality < -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1918 QMessageLogger(__FILE__, 3485, __PRETTY_FUNCTION__).warning("QPixmap::save: Quality out of range [-1, 100]");
never executed: QMessageLogger(__FILE__, 3485, __PRETTY_FUNCTION__).warning("QPixmap::save: Quality out of range [-1, 100]");
0
1919 if (quality >= 0
quality >= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1920 writer->setQuality(qMin(quality,100));
never executed: writer->setQuality(qMin(quality,100));
0
1921 return
never executed: return writer->write(*image);
writer->write(*image);
never executed: return writer->write(*image);
0
1922}-
1923QDataStream &operator<<(QDataStream &s, const QImage &image)-
1924{-
1925 if (s.version() >= 5
s.version() >= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1926 if (image.isNull()
image.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1927 s << (qint32) 0;-
1928 return
never executed: return s;
s;
never executed: return s;
0
1929 } else {-
1930 s << (qint32) 1;-
1931-
1932 }
never executed: end of block
0
1933 }-
1934 QImageWriter writer(s.device(), s.version() == 1 ? "bmp" : "png");-
1935 writer.write(image);-
1936 return
never executed: return s;
s;
never executed: return s;
0
1937}-
1938QDataStream &operator>>(QDataStream &s, QImage &image)-
1939{-
1940 if (s.version() >= 5
s.version() >= 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1941 qint32 nullMarker;-
1942 s >> nullMarker;-
1943 if (!nullMarker
!nullMarkerDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1944 image = QImage();-
1945 return
never executed: return s;
s;
never executed: return s;
0
1946 }-
1947 }
never executed: end of block
0
1948 image = QImageReader(s.device(), 0).read();-
1949 return
never executed: return s;
s;
never executed: return s;
0
1950}-
1951bool QImage::operator==(const QImage & i) const-
1952{-
1953-
1954 if (i.d == d
i.d == dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1955 return
never executed: return true;
true;
never executed: return true;
0
1956 if (!i.d
!i.dDescription
TRUEnever evaluated
FALSEnever evaluated
|| !d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1957 return
never executed: return false;
false;
never executed: return false;
0
1958-
1959-
1960 if (i.d->height != d->height
i.d->height != d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
|| i.d->width != d->width
i.d->width != d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
|| i.d->format != d->format
i.d->format != d->formatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
1961 return
never executed: return false;
false;
never executed: return false;
0
1962-
1963 if (d->format != Format_RGB32
d->format != Format_RGB32Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1964 if (d->format >= Format_ARGB32
d->format >= Format_ARGB32Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1965 const int n = d->width * d->depth / 8;-
1966 if (n == d->bytes_per_line
n == d->bytes_per_lineDescription
TRUEnever evaluated
FALSEnever evaluated
&& n == i.d->bytes_per_line
n == i.d->bytes_per_lineDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1967 if (memcmp(bits(), i.bits(), d->nbytes)
memcmp(bits(),...(), d->nbytes)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1968 return
never executed: return false;
false;
never executed: return false;
0
1969 }
never executed: end of block
else {
0
1970 for (int y = 0; y < d->height
y < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
1971 if (memcmp(scanLine(y), i.scanLine(y), n)
memcmp(scanLin...canLine(y), n)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1972 return
never executed: return false;
false;
never executed: return false;
0
1973 }
never executed: end of block
0
1974 }
never executed: end of block
0
1975 } else {-
1976 const int w = width();-
1977 const int h = height();-
1978 const QVector<QRgb> &colortable = d->colortable;-
1979 const QVector<QRgb> &icolortable = i.d->colortable;-
1980 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
1981 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x) {
0
1982 if (colortable[pixelIndex(x, y)] != icolortable[i.pixelIndex(x, y)]
colortable[pix...elIndex(x, y)]Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1983 return
never executed: return false;
false;
never executed: return false;
0
1984 }
never executed: end of block
0
1985 }
never executed: end of block
0
1986 }
never executed: end of block
0
1987 } else {-
1988-
1989 for(int l = 0; l < d->height
l < d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
; l++) {
0
1990 int w = d->width;-
1991 const uint *p1 = reinterpret_cast<const uint*>(scanLine(l));-
1992 const uint *p2 = reinterpret_cast<const uint*>(i.scanLine(l));-
1993 while (w--
w--Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1994 if ((*
(*p1++ & 0x00f... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
p1++ & 0x00ffffff) != (*p2++ & 0x00ffffff)
(*p1++ & 0x00f... & 0x00ffffff)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1995 return
never executed: return false;
false;
never executed: return false;
0
1996 }
never executed: end of block
0
1997 }
never executed: end of block
0
1998 }
never executed: end of block
0
1999 return
never executed: return true;
true;
never executed: return true;
0
2000}-
2001bool QImage::operator!=(const QImage & i) const-
2002{-
2003 return
never executed: return !(*this == i);
!(*this == i);
never executed: return !(*this == i);
0
2004}-
2005int QImage::dotsPerMeterX() const-
2006{-
2007 return
never executed: return d ? qRound(d->dpmx) : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? qRound(d->dpmx) : 0;
never executed: return d ? qRound(d->dpmx) : 0;
0
2008}-
2009int QImage::dotsPerMeterY() const-
2010{-
2011 return
never executed: return d ? qRound(d->dpmy) : 0;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? qRound(d->dpmy) : 0;
never executed: return d ? qRound(d->dpmy) : 0;
0
2012}-
2013void QImage::setDotsPerMeterX(int x)-
2014{-
2015 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| !x
!xDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2016 return;
never executed: return;
0
2017 detach();-
2018-
2019 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2020 d->dpmx = x;
never executed: d->dpmx = x;
0
2021}
never executed: end of block
0
2022void QImage::setDotsPerMeterY(int y)-
2023{-
2024 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
|| !y
!yDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2025 return;
never executed: return;
0
2026 detach();-
2027-
2028 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2029 d->dpmy = y;
never executed: d->dpmy = y;
0
2030}
never executed: end of block
0
2031QPoint QImage::offset() const-
2032{-
2033 return
never executed: return d ? d->offset : QPoint();
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? d->offset : QPoint();
never executed: return d ? d->offset : QPoint();
0
2034}-
2035void QImage::setOffset(const QPoint& p)-
2036{-
2037 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2038 return;
never executed: return;
0
2039 detach();-
2040-
2041 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2042 d->offset = p;
never executed: d->offset = p;
0
2043}
never executed: end of block
0
2044QStringList QImage::textKeys() const-
2045{-
2046 return
never executed: return d ? QStringList(d->text.keys()) : QStringList();
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
? QStringList(d->text.keys()) : QStringList();
never executed: return d ? QStringList(d->text.keys()) : QStringList();
0
2047}-
2048QString QImage::text(const QString &key) const-
2049{-
2050 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2051 return
never executed: return QString();
QString();
never executed: return QString();
0
2052-
2053 if (!key.isEmpty()
!key.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2054 return
never executed: return d->text.value(key);
d->text.value(key);
never executed: return d->text.value(key);
0
2055-
2056 QString tmp;-
2057 for (QForeachContainer<typename QtPrivate::remove_reference<decltype(d->text.keys())>::type> _container_((d->text.keys())); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for (const QString &key = *_container_.i; _container_.control; _container_.control = 0) {-
2058 if (!tmp.isEmpty()
!tmp.isEmpty()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2059 tmp += QLatin1String("\n\n");
never executed: tmp += QLatin1String("\n\n");
0
2060 tmp += key + QLatin1String(": ") + d->text.value(key).simplified();-
2061 }
never executed: end of block
0
2062 return
never executed: return tmp;
tmp;
never executed: return tmp;
0
2063}-
2064void QImage::setText(const QString &key, const QString &value)-
2065{-
2066 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2067 return;
never executed: return;
0
2068 detach();-
2069-
2070 if (d
dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2071 d->text.insert(key, value);
never executed: d->text.insert(key, value);
0
2072}
never executed: end of block
0
2073QPaintEngine *QImage::paintEngine() const-
2074{-
2075 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2076 return
never executed: return 0;
0;
never executed: return 0;
0
2077-
2078 if (!d->paintEngine
!d->paintEngineDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2079 QPaintDevice *paintDevice = const_cast<QImage *>(this);-
2080 QPaintEngine *paintEngine = 0;-
2081 QPlatformIntegration *platformIntegration = QGuiApplicationPrivate::platformIntegration();-
2082 if (platformIntegration
platformIntegrationDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2083 paintEngine = platformIntegration->createImagePaintEngine(paintDevice);
never executed: paintEngine = platformIntegration->createImagePaintEngine(paintDevice);
0
2084 d->paintEngine = paintEngine
paintEngineDescription
TRUEnever evaluated
FALSEnever evaluated
? paintEngine : new QRasterPaintEngine(paintDevice);
0
2085 }
never executed: end of block
0
2086-
2087 return
never executed: return d->paintEngine;
d->paintEngine;
never executed: return d->paintEngine;
0
2088}-
2089-
2090-
2091-
2092-
2093-
2094-
2095-
2096int QImage::metric(PaintDeviceMetric metric) const-
2097{-
2098 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2099 return
never executed: return 0;
0;
never executed: return 0;
0
2100-
2101 switch (metric) {-
2102 case
never executed: case PdmWidth:
PdmWidth:
never executed: case PdmWidth:
0
2103 return
never executed: return d->width;
d->width;
never executed: return d->width;
0
2104-
2105 case
never executed: case PdmHeight:
PdmHeight:
never executed: case PdmHeight:
0
2106 return
never executed: return d->height;
d->height;
never executed: return d->height;
0
2107-
2108 case
never executed: case PdmWidthMM:
PdmWidthMM:
never executed: case PdmWidthMM:
0
2109 return
never executed: return qRound(d->width * 1000 / d->dpmx);
qRound(d->width * 1000 / d->dpmx);
never executed: return qRound(d->width * 1000 / d->dpmx);
0
2110-
2111 case
never executed: case PdmHeightMM:
PdmHeightMM:
never executed: case PdmHeightMM:
0
2112 return
never executed: return qRound(d->height * 1000 / d->dpmy);
qRound(d->height * 1000 / d->dpmy);
never executed: return qRound(d->height * 1000 / d->dpmy);
0
2113-
2114 case
never executed: case PdmNumColors:
PdmNumColors:
never executed: case PdmNumColors:
0
2115 return
never executed: return d->colortable.size();
d->colortable.size();
never executed: return d->colortable.size();
0
2116-
2117 case
never executed: case PdmDepth:
PdmDepth:
never executed: case PdmDepth:
0
2118 return
never executed: return d->depth;
d->depth;
never executed: return d->depth;
0
2119-
2120 case
never executed: case PdmDpiX:
PdmDpiX:
never executed: case PdmDpiX:
0
2121 return
never executed: return qRound(d->dpmx * 0.0254);
qRound(d->dpmx * 0.0254);
never executed: return qRound(d->dpmx * 0.0254);
0
2122 break;
dead code: break;
-
2123-
2124 case
never executed: case PdmDpiY:
PdmDpiY:
never executed: case PdmDpiY:
0
2125 return
never executed: return qRound(d->dpmy * 0.0254);
qRound(d->dpmy * 0.0254);
never executed: return qRound(d->dpmy * 0.0254);
0
2126 break;
dead code: break;
-
2127-
2128 case
never executed: case PdmPhysicalDpiX:
PdmPhysicalDpiX:
never executed: case PdmPhysicalDpiX:
0
2129 return
never executed: return qRound(d->dpmx * 0.0254);
qRound(d->dpmx * 0.0254);
never executed: return qRound(d->dpmx * 0.0254);
0
2130 break;
dead code: break;
-
2131-
2132 case
never executed: case PdmPhysicalDpiY:
PdmPhysicalDpiY:
never executed: case PdmPhysicalDpiY:
0
2133 return
never executed: return qRound(d->dpmy * 0.0254);
qRound(d->dpmy * 0.0254);
never executed: return qRound(d->dpmy * 0.0254);
0
2134 break;
dead code: break;
-
2135-
2136 case
never executed: case PdmDevicePixelRatio:
PdmDevicePixelRatio:
never executed: case PdmDevicePixelRatio:
0
2137 return
never executed: return d->devicePixelRatio;
d->devicePixelRatio;
never executed: return d->devicePixelRatio;
0
2138 break;
dead code: break;
-
2139-
2140 case
never executed: case PdmDevicePixelRatioScaled:
PdmDevicePixelRatioScaled:
never executed: case PdmDevicePixelRatioScaled:
0
2141 return
never executed: return d->devicePixelRatio * QPaintDevice::devicePixelRatioFScale();
d->devicePixelRatio * QPaintDevice::devicePixelRatioFScale();
never executed: return d->devicePixelRatio * QPaintDevice::devicePixelRatioFScale();
0
2142 break;
dead code: break;
-
2143-
2144 default
never executed: default:
:
never executed: default:
0
2145 QMessageLogger(__FILE__, 3946, __PRETTY_FUNCTION__).warning("QImage::metric(): Unhandled metric type %d", metric);-
2146 break;
never executed: break;
0
2147 }-
2148 return
never executed: return 0;
0;
never executed: return 0;
0
2149}-
2150bool qt_xForm_helper(const QTransform &trueMat, int xoffset, int type, int depth,-
2151 uchar *dptr, int dbpl, int p_inc, int dHeight,-
2152 const uchar *sptr, int sbpl, int sWidth, int sHeight)-
2153{-
2154 int m11 = int(trueMat.m11()*4096.0);-
2155 int m12 = int(trueMat.m12()*4096.0);-
2156 int m21 = int(trueMat.m21()*4096.0);-
2157 int m22 = int(trueMat.m22()*4096.0);-
2158 int dx = qRound(trueMat.dx()*4096.0);-
2159 int dy = qRound(trueMat.dy()*4096.0);-
2160-
2161 int m21ydx = dx + (xoffset<<16) + (m11 + m21) / 2;-
2162 int m22ydy = dy + (m12 + m22) / 2;-
2163 uint trigx;-
2164 uint trigy;-
2165 uint maxws = sWidth<<12;-
2166 uint maxhs = sHeight<<12;-
2167-
2168 for (int y=0; y<dHeight
y<dHeightDescription
TRUEnever evaluated
FALSEnever evaluated
; y++) {
0
2169 trigx = m21ydx;-
2170 trigy = m22ydy;-
2171 uchar *maxp = dptr + dbpl;-
2172 if (depth != 1
depth != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2173 switch (depth) {-
2174 case
never executed: case 8:
8:
never executed: case 8:
0
2175 while (dptr < maxp
dptr < maxpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2176 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2177 *
never executed: *dptr = *(sptr+sbpl*(trigy>>12)+(trigx>>12));
dptr = *(sptr+sbpl*(trigy>>12)+(trigx>>12));
never executed: *dptr = *(sptr+sbpl*(trigy>>12)+(trigx>>12));
0
2178 trigx += m11;-
2179 trigy += m12;-
2180 dptr++;-
2181 }
never executed: end of block
0
2182 break;
never executed: break;
0
2183-
2184 case
never executed: case 16:
16:
never executed: case 16:
0
2185 while (dptr < maxp
dptr < maxpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2186 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2187 *((
never executed: *((ushort*)dptr) = *((const ushort *)(sptr+sbpl*(trigy>>12) + ((trigx>>12)<<1)));
ushort*)dptr) = *((const ushort *)(sptr+sbpl*(trigy>>12) +
never executed: *((ushort*)dptr) = *((const ushort *)(sptr+sbpl*(trigy>>12) + ((trigx>>12)<<1)));
0
2188 ((trigx>>12)<<1)));
never executed: *((ushort*)dptr) = *((const ushort *)(sptr+sbpl*(trigy>>12) + ((trigx>>12)<<1)));
0
2189 trigx += m11;-
2190 trigy += m12;-
2191 dptr++;-
2192 dptr++;-
2193 }
never executed: end of block
0
2194 break;
never executed: break;
0
2195-
2196 case
never executed: case 24:
24:
never executed: case 24:
0
2197 while (dptr < maxp
dptr < maxpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2198 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2199 const uchar *p2 = sptr+sbpl*(trigy>>12) + ((trigx>>12)*3);-
2200 dptr[0] = p2[0];-
2201 dptr[1] = p2[1];-
2202 dptr[2] = p2[2];-
2203 }
never executed: end of block
0
2204 trigx += m11;-
2205 trigy += m12;-
2206 dptr += 3;-
2207 }
never executed: end of block
0
2208 break;
never executed: break;
0
2209-
2210 case
never executed: case 32:
32:
never executed: case 32:
0
2211 while (dptr < maxp
dptr < maxpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2212 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2213 *((
never executed: *((uint*)dptr) = *((const uint *)(sptr+sbpl*(trigy>>12) + ((trigx>>12)<<2)));
uint*)dptr) = *((const uint *)(sptr+sbpl*(trigy>>12) +
never executed: *((uint*)dptr) = *((const uint *)(sptr+sbpl*(trigy>>12) + ((trigx>>12)<<2)));
0
2214 ((trigx>>12)<<2)));
never executed: *((uint*)dptr) = *((const uint *)(sptr+sbpl*(trigy>>12) + ((trigx>>12)<<2)));
0
2215 trigx += m11;-
2216 trigy += m12;-
2217 dptr += 4;-
2218 }
never executed: end of block
0
2219 break;
never executed: break;
0
2220-
2221 default
never executed: default:
:
never executed: default:
{
0
2222 return
never executed: return false;
false;
never executed: return false;
0
2223 }-
2224 }-
2225 } else {-
2226 switch (type) {-
2227 case
never executed: case 0:
0:
never executed: case 0:
0
2228 while (dptr < maxp
dptr < maxpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2229 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 128;
dptr |= 128;
never executed: *dptr |= 128;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2230 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 64;
dptr |= 64;
never executed: *dptr |= 64;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2231 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 32;
dptr |= 32;
never executed: *dptr |= 32;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2232 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 16;
dptr |= 16;
never executed: *dptr |= 16;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2233 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 8;
dptr |= 8;
never executed: *dptr |= 8;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2234 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 4;
dptr |= 4;
never executed: *dptr |= 4;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2235 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 2;
dptr |= 2;
never executed: *dptr |= 2;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2236 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << (7-((trigx>>12)&7)))
*(sptr+sbpl*(t...rigx>>12)&7)))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 1;
dptr |= 1;
never executed: *dptr |= 1;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2237 dptr++;-
2238 }
never executed: end of block
0
2239 break;
never executed: break;
0
2240 case
never executed: case 1:
1:
never executed: case 1:
0
2241 while (dptr < maxp
dptr < maxpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2242 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 1;
dptr |= 1;
never executed: *dptr |= 1;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2243 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 2;
dptr |= 2;
never executed: *dptr |= 2;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2244 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 4;
dptr |= 4;
never executed: *dptr |= 4;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2245 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 8;
dptr |= 8;
never executed: *dptr |= 8;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2246 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 16;
dptr |= 16;
never executed: *dptr |= 16;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2247 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 32;
dptr |= 32;
never executed: *dptr |= 32;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2248 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 64;
dptr |= 64;
never executed: *dptr |= 64;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2249 if (trigx < maxws
trigx < maxwsDescription
TRUEnever evaluated
FALSEnever evaluated
&& trigy < maxhs
trigy < maxhsDescription
TRUEnever evaluated
FALSEnever evaluated
) { if (*(
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
sptr+sbpl*(trigy>>12)+(trigx>>15)) & (1 << ((trigx>>12)&7))
*(sptr+sbpl*(t...trigx>>12)&7))Description
TRUEnever evaluated
FALSEnever evaluated
) *
never executed: *dptr |= 128;
dptr |= 128;
never executed: *dptr |= 128;
}
never executed: end of block
trigx += m11; trigy += m12;;
0
2250 dptr++;-
2251 }
never executed: end of block
0
2252 break;
never executed: break;
0
2253 }-
2254 }
never executed: end of block
0
2255 m21ydx += m21;-
2256 m22ydy += m22;-
2257 dptr += p_inc;-
2258 }
never executed: end of block
0
2259 return
never executed: return true;
true;
never executed: return true;
0
2260}-
2261qint64 QImage::cacheKey() const-
2262{-
2263 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2264 return
never executed: return 0;
0;
never executed: return 0;
0
2265 else-
2266 return
never executed: return (((qint64) d->ser_no) << 32) | ((qint64) d->detach_no);
(((qint64) d->ser_no) << 32) | ((qint64) d->detach_no);
never executed: return (((qint64) d->ser_no) << 32) | ((qint64) d->detach_no);
0
2267}-
2268bool QImage::isDetached() const-
2269{-
2270 return
never executed: return d && d->ref.load() == 1;
d
dDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->ref.load() == 1
d->ref.load() == 1Description
TRUEnever evaluated
FALSEnever evaluated
;
never executed: return d && d->ref.load() == 1;
0
2271}-
2272void QImage::setAlphaChannel(const QImage &alphaChannel)-
2273{-
2274 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2275 return;
never executed: return;
0
2276-
2277 int w = d->width;-
2278 int h = d->height;-
2279-
2280 if (w != alphaChannel.d->width
w != alphaChannel.d->widthDescription
TRUEnever evaluated
FALSEnever evaluated
|| h != alphaChannel.d->height
h != alphaChannel.d->heightDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2281 QMessageLogger(__FILE__, 4192, __PRETTY_FUNCTION__).warning("QImage::setAlphaChannel: "-
2282 "Alpha channel must have same dimensions as the target image");-
2283 return;
never executed: return;
0
2284 }-
2285-
2286 if (d->paintEngine
d->paintEngineDescription
TRUEnever evaluated
FALSEnever evaluated
&& d->paintEngine->isActive()
d->paintEngine->isActive()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2287 QMessageLogger(__FILE__, 4198, __PRETTY_FUNCTION__).warning("QImage::setAlphaChannel: "-
2288 "Unable to set alpha channel while image is being painted on");-
2289 return;
never executed: return;
0
2290 }-
2291-
2292 if (d->format == QImage::Format_ARGB32_Premultiplied
d->format == Q..._PremultipliedDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2293 detach();
never executed: detach();
0
2294 else-
2295 *
never executed: *this = convertToFormat(QImage::Format_ARGB32_Premultiplied);
this = convertToFormat(QImage::Format_ARGB32_Premultiplied);
never executed: *this = convertToFormat(QImage::Format_ARGB32_Premultiplied);
0
2296-
2297 if (isNull()
isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2298 return;
never executed: return;
0
2299-
2300-
2301 if (alphaChannel.format() == QImage::Format_Alpha8
alphaChannel.f...:Format_Alpha8Description
TRUEnever evaluated
FALSEnever evaluated
||( alphaChannel.d->depth == 8
alphaChannel.d->depth == 8Description
TRUEnever evaluated
FALSEnever evaluated
&& alphaChannel.isGrayscale()
alphaChannel.isGrayscale()Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0
2302 const uchar *src_data = alphaChannel.d->data;-
2303 uchar *dest_data = d->data;-
2304 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
2305 const uchar *src = src_data;-
2306 QRgb *dest = (QRgb *)dest_data;-
2307 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x) {
0
2308 int alpha = *src;-
2309 int destAlpha = qt_div_255(alpha * qAlpha(*dest));-
2310 *dest = ((destAlpha << 24)-
2311 | (qt_div_255(qRed(*dest) * alpha) << 16)-
2312 | (qt_div_255(qGreen(*dest) * alpha) << 8)-
2313 | (qt_div_255(qBlue(*dest) * alpha)));-
2314 ++dest;-
2315 ++src;-
2316 }
never executed: end of block
0
2317 src_data += alphaChannel.d->bytes_per_line;-
2318 dest_data += d->bytes_per_line;-
2319 }
never executed: end of block
0
2320-
2321 }
never executed: end of block
else {
0
2322 const QImage sourceImage = alphaChannel.convertToFormat(QImage::Format_RGB32);-
2323 if (sourceImage.isNull()
sourceImage.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2324 return;
never executed: return;
0
2325 const uchar *src_data = sourceImage.d->data;-
2326 uchar *dest_data = d->data;-
2327 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
2328 const QRgb *src = (const QRgb *) src_data;-
2329 QRgb *dest = (QRgb *) dest_data;-
2330 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x) {
0
2331 int alpha = qGray(*src);-
2332 int destAlpha = qt_div_255(alpha * qAlpha(*dest));-
2333 *dest = ((destAlpha << 24)-
2334 | (qt_div_255(qRed(*dest) * alpha) << 16)-
2335 | (qt_div_255(qGreen(*dest) * alpha) << 8)-
2336 | (qt_div_255(qBlue(*dest) * alpha)));-
2337 ++dest;-
2338 ++src;-
2339 }
never executed: end of block
0
2340 src_data += sourceImage.d->bytes_per_line;-
2341 dest_data += d->bytes_per_line;-
2342 }
never executed: end of block
0
2343 }
never executed: end of block
0
2344}-
2345QImage QImage::alphaChannel() const-
2346{-
2347 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2348 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
2349-
2350 int w = d->width;-
2351 int h = d->height;-
2352-
2353 QImage image(w, h, Format_Indexed8);-
2354 image.setColorCount(256);-
2355-
2356-
2357 for (int i=0; i<256
i<256Description
TRUEnever evaluated
FALSEnever evaluated
; ++i)
0
2358 image.setColor(i, qRgb(i, i, i));
never executed: image.setColor(i, qRgb(i, i, i));
0
2359-
2360 if (!hasAlphaChannel()
!hasAlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2361 image.fill(255);-
2362 return
never executed: return image;
image;
never executed: return image;
0
2363 }-
2364-
2365 if (d->format == Format_Indexed8
d->format == Format_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2366 const uchar *src_data = d->data;-
2367 uchar *dest_data = image.d->data;-
2368 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
2369 const uchar *src = src_data;-
2370 uchar *dest = dest_data;-
2371 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x) {
0
2372 *dest = qAlpha(d->colortable.at(*src));-
2373 ++dest;-
2374 ++src;-
2375 }
never executed: end of block
0
2376 src_data += d->bytes_per_line;-
2377 dest_data += image.d->bytes_per_line;-
2378 }
never executed: end of block
0
2379 }
never executed: end of block
else if (d->format == Format_Alpha8
d->format == Format_Alpha8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2380 const uchar *src_data = d->data;-
2381 uchar *dest_data = image.d->data;-
2382 memcpy(dest_data, src_data, d->bytes_per_line * h);-
2383 }
never executed: end of block
else {
0
2384 QImage alpha32 = *this;-
2385 bool canSkipConversion = (d->format == Format_ARGB32
d->format == Format_ARGB32Description
TRUEnever evaluated
FALSEnever evaluated
|| d->format == Format_ARGB32_Premultiplied
d->format == F..._PremultipliedDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
2386-
2387 canSkipConversion = canSkipConversion
canSkipConversionDescription
TRUEnever evaluated
FALSEnever evaluated
|| (d->format == Format_RGBA8888
d->format == Format_RGBA8888Description
TRUEnever evaluated
FALSEnever evaluated
|| d->format == Format_RGBA8888_Premultiplied
d->format == F..._PremultipliedDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
2388-
2389 if (!canSkipConversion
!canSkipConversionDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2390 alpha32 = convertToFormat(Format_ARGB32);
never executed: alpha32 = convertToFormat(Format_ARGB32);
0
2391-
2392 const uchar *src_data = alpha32.d->data;-
2393 uchar *dest_data = image.d->data;-
2394 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
2395 const QRgb *src = (const QRgb *) src_data;-
2396 uchar *dest = dest_data;-
2397 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x) {
0
2398 *dest = qAlpha(*src);-
2399 ++dest;-
2400 ++src;-
2401 }
never executed: end of block
0
2402 src_data += alpha32.d->bytes_per_line;-
2403 dest_data += image.d->bytes_per_line;-
2404 }
never executed: end of block
0
2405 }
never executed: end of block
0
2406-
2407 return
never executed: return image;
image;
never executed: return image;
0
2408}-
2409-
2410-
2411-
2412-
2413-
2414-
2415-
2416bool QImage::hasAlphaChannel() const-
2417{-
2418 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2419 return
never executed: return false;
false;
never executed: return false;
0
2420 const QPixelFormat format = pixelFormat();-
2421 if (format.alphaUsage() == QPixelFormat::UsesAlpha
format.alphaUs...mat::UsesAlphaDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2422 return
never executed: return true;
true;
never executed: return true;
0
2423 if (format.colorModel() == QPixelFormat::Indexed
format.colorMo...ormat::IndexedDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2424 return
never executed: return d->has_alpha_clut;
d->has_alpha_clut;
never executed: return d->has_alpha_clut;
0
2425 return
never executed: return false;
false;
never executed: return false;
0
2426}-
2427int QImage::bitPlaneCount() const-
2428{-
2429 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2430 return
never executed: return 0;
0;
never executed: return 0;
0
2431 int bpc = 0;-
2432 switch (d->format) {-
2433 case
never executed: case QImage::Format_Invalid:
QImage::Format_Invalid:
never executed: case QImage::Format_Invalid:
0
2434 break;
never executed: break;
0
2435 case
never executed: case QImage::Format_BGR30:
QImage::Format_BGR30:
never executed: case QImage::Format_BGR30:
0
2436 case
never executed: case QImage::Format_RGB30:
QImage::Format_RGB30:
never executed: case QImage::Format_RGB30:
0
2437 bpc = 30;-
2438 break;
never executed: break;
0
2439 case
never executed: case QImage::Format_RGB32:
QImage::Format_RGB32:
never executed: case QImage::Format_RGB32:
0
2440 case
never executed: case QImage::Format_RGBX8888:
QImage::Format_RGBX8888:
never executed: case QImage::Format_RGBX8888:
0
2441 bpc = 24;-
2442 break;
never executed: break;
0
2443 case
never executed: case QImage::Format_RGB666:
QImage::Format_RGB666:
never executed: case QImage::Format_RGB666:
0
2444 bpc = 18;-
2445 break;
never executed: break;
0
2446 case
never executed: case QImage::Format_RGB555:
QImage::Format_RGB555:
never executed: case QImage::Format_RGB555:
0
2447 bpc = 15;-
2448 break;
never executed: break;
0
2449 case
never executed: case QImage::Format_ARGB8555_Premultiplied:
QImage::Format_ARGB8555_Premultiplied:
never executed: case QImage::Format_ARGB8555_Premultiplied:
0
2450 bpc = 23;-
2451 break;
never executed: break;
0
2452 case
never executed: case QImage::Format_RGB444:
QImage::Format_RGB444:
never executed: case QImage::Format_RGB444:
0
2453 bpc = 12;-
2454 break;
never executed: break;
0
2455 default
never executed: default:
:
never executed: default:
0
2456 bpc = qt_depthForFormat(d->format);-
2457 break;
never executed: break;
0
2458 }-
2459 return
never executed: return bpc;
bpc;
never executed: return bpc;
0
2460}-
2461-
2462-
2463-
2464-
2465-
2466QImage QImage::smoothScaled(int w, int h) const {-
2467 QImage src = *this;-
2468 switch (src.format()) {-
2469 case
never executed: case QImage::Format_RGB32:
QImage::Format_RGB32:
never executed: case QImage::Format_RGB32:
0
2470 case
never executed: case QImage::Format_ARGB32_Premultiplied:
QImage::Format_ARGB32_Premultiplied:
never executed: case QImage::Format_ARGB32_Premultiplied:
0
2471-
2472 case
never executed: case QImage::Format_RGBX8888:
QImage::Format_RGBX8888:
never executed: case QImage::Format_RGBX8888:
0
2473-
2474 case
never executed: case QImage::Format_RGBA8888_Premultiplied:
QImage::Format_RGBA8888_Premultiplied:
never executed: case QImage::Format_RGBA8888_Premultiplied:
0
2475 break;
never executed: break;
0
2476 default
never executed: default:
:
never executed: default:
0
2477 if (src.hasAlphaChannel()
src.hasAlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2478 src = src.convertToFormat(QImage::Format_ARGB32_Premultiplied);
never executed: src = src.convertToFormat(QImage::Format_ARGB32_Premultiplied);
0
2479 else-
2480 src = src.convertToFormat(QImage::Format_RGB32);
never executed: src = src.convertToFormat(QImage::Format_RGB32);
0
2481 }-
2482 src = qSmoothScaleImage(src, w, h);-
2483 if (!src.isNull()
!src.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2484 copyMetadata(src.d, d);
never executed: copyMetadata(src.d, d);
0
2485 return
never executed: return src;
src;
never executed: return src;
0
2486}-
2487-
2488static QImage rotated90(const QImage &image) {-
2489 QImage out(image.height(), image.width(), image.format());-
2490 out.setDotsPerMeterX(image.dotsPerMeterY());-
2491 out.setDotsPerMeterY(image.dotsPerMeterX());-
2492 if (image.colorCount() > 0
image.colorCount() > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2493 out.setColorTable(image.colorTable());
never executed: out.setColorTable(image.colorTable());
0
2494 int w = image.width();-
2495 int h = image.height();-
2496 switch (image.format()) {-
2497 case
never executed: case QImage::Format_RGB32:
QImage::Format_RGB32:
never executed: case QImage::Format_RGB32:
0
2498 case
never executed: case QImage::Format_ARGB32:
QImage::Format_ARGB32:
never executed: case QImage::Format_ARGB32:
0
2499 case
never executed: case QImage::Format_ARGB32_Premultiplied:
QImage::Format_ARGB32_Premultiplied:
never executed: case QImage::Format_ARGB32_Premultiplied:
0
2500 case
never executed: case QImage::Format_RGBX8888:
QImage::Format_RGBX8888:
never executed: case QImage::Format_RGBX8888:
0
2501 case
never executed: case QImage::Format_RGBA8888:
QImage::Format_RGBA8888:
never executed: case QImage::Format_RGBA8888:
0
2502 case
never executed: case QImage::Format_RGBA8888_Premultiplied:
QImage::Format_RGBA8888_Premultiplied:
never executed: case QImage::Format_RGBA8888_Premultiplied:
0
2503 case
never executed: case QImage::Format_BGR30:
QImage::Format_BGR30:
never executed: case QImage::Format_BGR30:
0
2504 case
never executed: case QImage::Format_A2BGR30_Premultiplied:
QImage::Format_A2BGR30_Premultiplied:
never executed: case QImage::Format_A2BGR30_Premultiplied:
0
2505 case
never executed: case QImage::Format_RGB30:
QImage::Format_RGB30:
never executed: case QImage::Format_RGB30:
0
2506 case
never executed: case QImage::Format_A2RGB30_Premultiplied:
QImage::Format_A2RGB30_Premultiplied:
never executed: case QImage::Format_A2RGB30_Premultiplied:
0
2507 qt_memrotate270(reinterpret_cast<const quint32*>(image.bits()),-
2508 w, h, image.bytesPerLine(),-
2509 reinterpret_cast<quint32*>(out.bits()),-
2510 out.bytesPerLine());-
2511 break;
never executed: break;
0
2512 case
never executed: case QImage::Format_RGB666:
QImage::Format_RGB666:
never executed: case QImage::Format_RGB666:
0
2513 case
never executed: case QImage::Format_ARGB6666_Premultiplied:
QImage::Format_ARGB6666_Premultiplied:
never executed: case QImage::Format_ARGB6666_Premultiplied:
0
2514 case
never executed: case QImage::Format_ARGB8565_Premultiplied:
QImage::Format_ARGB8565_Premultiplied:
never executed: case QImage::Format_ARGB8565_Premultiplied:
0
2515 case
never executed: case QImage::Format_ARGB8555_Premultiplied:
QImage::Format_ARGB8555_Premultiplied:
never executed: case QImage::Format_ARGB8555_Premultiplied:
0
2516 case
never executed: case QImage::Format_RGB888:
QImage::Format_RGB888:
never executed: case QImage::Format_RGB888:
0
2517 qt_memrotate270(reinterpret_cast<const quint24*>(image.bits()),-
2518 w, h, image.bytesPerLine(),-
2519 reinterpret_cast<quint24*>(out.bits()),-
2520 out.bytesPerLine());-
2521 break;
never executed: break;
0
2522 case
never executed: case QImage::Format_RGB555:
QImage::Format_RGB555:
never executed: case QImage::Format_RGB555:
0
2523 case
never executed: case QImage::Format_RGB16:
QImage::Format_RGB16:
never executed: case QImage::Format_RGB16:
0
2524 case
never executed: case QImage::Format_ARGB4444_Premultiplied:
QImage::Format_ARGB4444_Premultiplied:
never executed: case QImage::Format_ARGB4444_Premultiplied:
0
2525 qt_memrotate270(reinterpret_cast<const quint16*>(image.bits()),-
2526 w, h, image.bytesPerLine(),-
2527 reinterpret_cast<quint16*>(out.bits()),-
2528 out.bytesPerLine());-
2529 break;
never executed: break;
0
2530 case
never executed: case QImage::Format_Alpha8:
QImage::Format_Alpha8:
never executed: case QImage::Format_Alpha8:
0
2531 case
never executed: case QImage::Format_Grayscale8:
QImage::Format_Grayscale8:
never executed: case QImage::Format_Grayscale8:
0
2532 case
never executed: case QImage::Format_Indexed8:
QImage::Format_Indexed8:
never executed: case QImage::Format_Indexed8:
0
2533 qt_memrotate270(reinterpret_cast<const quint8*>(image.bits()),-
2534 w, h, image.bytesPerLine(),-
2535 reinterpret_cast<quint8*>(out.bits()),-
2536 out.bytesPerLine());-
2537 break;
never executed: break;
0
2538 default
never executed: default:
:
never executed: default:
0
2539 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
2540 if (image.colorCount()
image.colorCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2541 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
2542 out.setPixel(h-y-1, x, image.pixelIndex(x, y));
never executed: out.setPixel(h-y-1, x, image.pixelIndex(x, y));
0
2543 else-
2544 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
2545 out.setPixel(h-y-1, x, image.pixel(x, y));
never executed: out.setPixel(h-y-1, x, image.pixel(x, y));
0
2546 }
never executed: end of block
0
2547 break;
never executed: break;
0
2548 }-
2549 return
never executed: return out;
out;
never executed: return out;
0
2550}-
2551-
2552-
2553static QImage rotated180(const QImage &image) {-
2554 return
never executed: return image.mirrored(true, true);
image.mirrored(true, true);
never executed: return image.mirrored(true, true);
0
2555}-
2556-
2557-
2558static QImage rotated270(const QImage &image) {-
2559 QImage out(image.height(), image.width(), image.format());-
2560 out.setDotsPerMeterX(image.dotsPerMeterY());-
2561 out.setDotsPerMeterY(image.dotsPerMeterX());-
2562 if (image.colorCount() > 0
image.colorCount() > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2563 out.setColorTable(image.colorTable());
never executed: out.setColorTable(image.colorTable());
0
2564 int w = image.width();-
2565 int h = image.height();-
2566 switch (image.format()) {-
2567 case
never executed: case QImage::Format_RGB32:
QImage::Format_RGB32:
never executed: case QImage::Format_RGB32:
0
2568 case
never executed: case QImage::Format_ARGB32:
QImage::Format_ARGB32:
never executed: case QImage::Format_ARGB32:
0
2569 case
never executed: case QImage::Format_ARGB32_Premultiplied:
QImage::Format_ARGB32_Premultiplied:
never executed: case QImage::Format_ARGB32_Premultiplied:
0
2570 case
never executed: case QImage::Format_RGBX8888:
QImage::Format_RGBX8888:
never executed: case QImage::Format_RGBX8888:
0
2571 case
never executed: case QImage::Format_RGBA8888:
QImage::Format_RGBA8888:
never executed: case QImage::Format_RGBA8888:
0
2572 case
never executed: case QImage::Format_RGBA8888_Premultiplied:
QImage::Format_RGBA8888_Premultiplied:
never executed: case QImage::Format_RGBA8888_Premultiplied:
0
2573 case
never executed: case QImage::Format_BGR30:
QImage::Format_BGR30:
never executed: case QImage::Format_BGR30:
0
2574 case
never executed: case QImage::Format_A2BGR30_Premultiplied:
QImage::Format_A2BGR30_Premultiplied:
never executed: case QImage::Format_A2BGR30_Premultiplied:
0
2575 case
never executed: case QImage::Format_RGB30:
QImage::Format_RGB30:
never executed: case QImage::Format_RGB30:
0
2576 case
never executed: case QImage::Format_A2RGB30_Premultiplied:
QImage::Format_A2RGB30_Premultiplied:
never executed: case QImage::Format_A2RGB30_Premultiplied:
0
2577 qt_memrotate90(reinterpret_cast<const quint32*>(image.bits()),-
2578 w, h, image.bytesPerLine(),-
2579 reinterpret_cast<quint32*>(out.bits()),-
2580 out.bytesPerLine());-
2581 break;
never executed: break;
0
2582 case
never executed: case QImage::Format_RGB666:
QImage::Format_RGB666:
never executed: case QImage::Format_RGB666:
0
2583 case
never executed: case QImage::Format_ARGB6666_Premultiplied:
QImage::Format_ARGB6666_Premultiplied:
never executed: case QImage::Format_ARGB6666_Premultiplied:
0
2584 case
never executed: case QImage::Format_ARGB8565_Premultiplied:
QImage::Format_ARGB8565_Premultiplied:
never executed: case QImage::Format_ARGB8565_Premultiplied:
0
2585 case
never executed: case QImage::Format_ARGB8555_Premultiplied:
QImage::Format_ARGB8555_Premultiplied:
never executed: case QImage::Format_ARGB8555_Premultiplied:
0
2586 case
never executed: case QImage::Format_RGB888:
QImage::Format_RGB888:
never executed: case QImage::Format_RGB888:
0
2587 qt_memrotate90(reinterpret_cast<const quint24*>(image.bits()),-
2588 w, h, image.bytesPerLine(),-
2589 reinterpret_cast<quint24*>(out.bits()),-
2590 out.bytesPerLine());-
2591 break;
never executed: break;
0
2592 case
never executed: case QImage::Format_RGB555:
QImage::Format_RGB555:
never executed: case QImage::Format_RGB555:
0
2593 case
never executed: case QImage::Format_RGB16:
QImage::Format_RGB16:
never executed: case QImage::Format_RGB16:
0
2594 case
never executed: case QImage::Format_ARGB4444_Premultiplied:
QImage::Format_ARGB4444_Premultiplied:
never executed: case QImage::Format_ARGB4444_Premultiplied:
0
2595 qt_memrotate90(reinterpret_cast<const quint16*>(image.bits()),-
2596 w, h, image.bytesPerLine(),-
2597 reinterpret_cast<quint16*>(out.bits()),-
2598 out.bytesPerLine());-
2599 break;
never executed: break;
0
2600 case
never executed: case QImage::Format_Alpha8:
QImage::Format_Alpha8:
never executed: case QImage::Format_Alpha8:
0
2601 case
never executed: case QImage::Format_Grayscale8:
QImage::Format_Grayscale8:
never executed: case QImage::Format_Grayscale8:
0
2602 case
never executed: case QImage::Format_Indexed8:
QImage::Format_Indexed8:
never executed: case QImage::Format_Indexed8:
0
2603 qt_memrotate90(reinterpret_cast<const quint8*>(image.bits()),-
2604 w, h, image.bytesPerLine(),-
2605 reinterpret_cast<quint8*>(out.bits()),-
2606 out.bytesPerLine());-
2607 break;
never executed: break;
0
2608 default
never executed: default:
:
never executed: default:
0
2609 for (int y=0; y<h
y<hDescription
TRUEnever evaluated
FALSEnever evaluated
; ++y) {
0
2610 if (image.colorCount()
image.colorCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2611 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
2612 out.setPixel(y, w-x-1, image.pixelIndex(x, y));
never executed: out.setPixel(y, w-x-1, image.pixelIndex(x, y));
0
2613 else-
2614 for (int x=0; x<w
x<wDescription
TRUEnever evaluated
FALSEnever evaluated
; ++x)
0
2615 out.setPixel(y, w-x-1, image.pixel(x, y));
never executed: out.setPixel(y, w-x-1, image.pixel(x, y));
0
2616 }
never executed: end of block
0
2617 break;
never executed: break;
0
2618 }-
2619 return
never executed: return out;
out;
never executed: return out;
0
2620}-
2621QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode ) const-
2622{-
2623 if (!d
!dDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2624 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
2625-
2626-
2627 int ws = width();-
2628 int hs = height();-
2629-
2630-
2631 int wd;-
2632 int hd;-
2633-
2634-
2635 QTransform mat = trueMatrix(matrix, ws, hs);-
2636 bool complex_xform = false;-
2637 bool scale_xform = false;-
2638 if (mat.type() <= QTransform::TxScale
mat.type() <= ...sform::TxScaleDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2639 if (mat.type() == QTransform::TxNone
mat.type() == ...nsform::TxNoneDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2640 return
never executed: return *this;
*this;
never executed: return *this;
0
2641 else if (mat.m11() == -1.
mat.m11() == -1.Description
TRUEnever evaluated
FALSEnever evaluated
&& mat.m22() == -1.
mat.m22() == -1.Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2642 return
never executed: return rotated180(*this);
rotated180(*this);
never executed: return rotated180(*this);
0
2643-
2644 if (mode == Qt::FastTransformation
mode == Qt::FastTransformationDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2645 hd = qRound(qAbs(mat.m22()) * hs);-
2646 wd = qRound(qAbs(mat.m11()) * ws);-
2647 }
never executed: end of block
else {
0
2648 hd = int(qAbs(mat.m22()) * hs + 0.9999);-
2649 wd = int(qAbs(mat.m11()) * ws + 0.9999);-
2650 }
never executed: end of block
0
2651 scale_xform = true;-
2652 }
never executed: end of block
else {
0
2653 if (mat.type() <= QTransform::TxRotate
mat.type() <= ...form::TxRotateDescription
TRUEnever evaluated
FALSEnever evaluated
&& mat.m11() == 0
mat.m11() == 0Description
TRUEnever evaluated
FALSEnever evaluated
&& mat.m22() == 0
mat.m22() == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2654 if (mat.m12() == 1.
mat.m12() == 1.Description
TRUEnever evaluated
FALSEnever evaluated
&& mat.m21() == -1.
mat.m21() == -1.Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2655 return
never executed: return rotated90(*this);
rotated90(*this);
never executed: return rotated90(*this);
0
2656 else if (mat.m12() == -1.
mat.m12() == -1.Description
TRUEnever evaluated
FALSEnever evaluated
&& mat.m21() == 1.
mat.m21() == 1.Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2657 return
never executed: return rotated270(*this);
rotated270(*this);
never executed: return rotated270(*this);
0
2658 }
never executed: end of block
0
2659-
2660 QPolygonF a(QRectF(0, 0, ws, hs));-
2661 a = mat.map(a);-
2662 QRect r = a.boundingRect().toAlignedRect();-
2663 wd = r.width();-
2664 hd = r.height();-
2665 complex_xform = true;-
2666 }
never executed: end of block
0
2667-
2668 if (wd == 0
wd == 0Description
TRUEnever evaluated
FALSEnever evaluated
|| hd == 0
hd == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2669 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
2670-
2671-
2672 if (scale_xform
scale_xformDescription
TRUEnever evaluated
FALSEnever evaluated
&& mode == Qt::SmoothTransformation
mode == Qt::Sm...TransformationDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2673 if (mat.m11() < 0.0F
mat.m11() < 0.0FDescription
TRUEnever evaluated
FALSEnever evaluated
&& mat.m22() < 0.0F
mat.m22() < 0.0FDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2674 return
never executed: return smoothScaled(wd, hd).mirrored(true, true);
smoothScaled(wd, hd).mirrored(true, true);
never executed: return smoothScaled(wd, hd).mirrored(true, true);
0
2675 } else if (mat.m11() < 0.0F
mat.m11() < 0.0FDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2676 return
never executed: return smoothScaled(wd, hd).mirrored(true, false);
smoothScaled(wd, hd).mirrored(true, false);
never executed: return smoothScaled(wd, hd).mirrored(true, false);
0
2677 } else if (mat.m22() < 0.0F
mat.m22() < 0.0FDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2678 return
never executed: return smoothScaled(wd, hd).mirrored(false, true);
smoothScaled(wd, hd).mirrored(false, true);
never executed: return smoothScaled(wd, hd).mirrored(false, true);
0
2679 } else {-
2680 return
never executed: return smoothScaled(wd, hd);
smoothScaled(wd, hd);
never executed: return smoothScaled(wd, hd);
0
2681 }-
2682 }-
2683-
2684 int bpp = depth();-
2685-
2686 int sbpl = bytesPerLine();-
2687 const uchar *sptr = bits();-
2688-
2689 QImage::Format target_format = d->format;-
2690-
2691 if (complex_xform
complex_xformDescription
TRUEnever evaluated
FALSEnever evaluated
|| mode == Qt::SmoothTransformation
mode == Qt::Sm...TransformationDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2692 if (d->format < QImage::Format_RGB32
d->format < QI...::Format_RGB32Description
TRUEnever evaluated
FALSEnever evaluated
|| !hasAlphaChannel()
!hasAlphaChannel()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2693 target_format = qt_alphaVersion(d->format);-
2694 }
never executed: end of block
0
2695 }
never executed: end of block
0
2696-
2697 QImage dImage(wd, hd, target_format);-
2698 if ((
(dImage).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
dImage).isNull()
(dImage).isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) { QMessageLogger(__FILE__, 4666, __PRETTY_FUNCTION__).warning("QImage: out of memory, returning null image"); return
never executed: return QImage();
QImage();
never executed: return QImage();
};
0
2699-
2700 if (target_format == QImage::Format_MonoLSB
target_format ...Format_MonoLSBDescription
TRUEnever evaluated
FALSEnever evaluated
0
2701 || target_format == QImage::Format_Mono
target_format ...e::Format_MonoDescription
TRUEnever evaluated
FALSEnever evaluated
0
2702 || target_format == QImage::Format_Indexed8
target_format ...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2703 dImage.d->colortable = d->colortable;-
2704 dImage.d->has_alpha_clut = d->has_alpha_clut | complex_xform;-
2705 }
never executed: end of block
0
2706-
2707-
2708 if (d->format == QImage::Format_Indexed8
d->format == Q...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2709 if (dImage.d->colortable.size() < 256
dImage.d->colo...e.size() < 256Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2710-
2711 dImage.d->colortable.append(0x0);-
2712 memset(dImage.bits(), dImage.d->colortable.size() - 1, dImage.byteCount());-
2713 }
never executed: end of block
else {
0
2714 memset(dImage.bits(), 0, dImage.byteCount());-
2715 }
never executed: end of block
0
2716 } else-
2717 memset(dImage.bits(), 0x00, dImage.byteCount());
never executed: memset(dImage.bits(), 0x00, dImage.byteCount());
0
2718-
2719 if (target_format >= QImage::Format_RGB32
target_format ...::Format_RGB32Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2720-
2721 const QImage sImage = (
(devicePixelRatio() != 1)Description
TRUEnever evaluated
FALSEnever evaluated
devicePixelRatio() != 1)
(devicePixelRatio() != 1)Description
TRUEnever evaluated
FALSEnever evaluated
? QImage(constBits(), width(), height(), format()) : *this;
0
2722-
2723 ((!(sImage.devicePixelRatio() == 1)) ? qt_assert("sImage.devicePixelRatio() == 1",__FILE__,4691) : qt_noop());-
2724 ((!(sImage.devicePixelRatio() == dImage.devicePixelRatio())) ? qt_assert("sImage.devicePixelRatio() == dImage.devicePixelRatio()",__FILE__,4692) : qt_noop());-
2725-
2726 QPainter p(&dImage);-
2727 if (mode == Qt::SmoothTransformation
mode == Qt::Sm...TransformationDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
2728 p.setRenderHint(QPainter::Antialiasing);-
2729 p.setRenderHint(QPainter::SmoothPixmapTransform);-
2730 }
never executed: end of block
0
2731 p.setTransform(mat);-
2732 p.drawImage(QPoint(0, 0), sImage);-
2733 }
never executed: end of block
else {
0
2734 bool invertible;-
2735 mat = mat.inverted(&invertible);-
2736 if (!invertible
!invertibleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2737 return
never executed: return QImage();
QImage();
never executed: return QImage();
0
2738-
2739-
2740 int type = format() == Format_Mono
format() == Format_MonoDescription
TRUEnever evaluated
FALSEnever evaluated
? 0 : 1;
0
2741 int dbpl = dImage.bytesPerLine();-
2742 qt_xForm_helper(mat, 0, type, bpp, dImage.bits(), dbpl, 0, hd, sptr, sbpl, ws, hs);-
2743 }
never executed: end of block
0
2744 copyMetadata(dImage.d, d);-
2745-
2746 return
never executed: return dImage;
dImage;
never executed: return dImage;
0
2747}-
2748QTransform QImage::trueMatrix(const QTransform &matrix, int w, int h)-
2749{-
2750 const QRectF rect(0, 0, w, h);-
2751 const QRect mapped = matrix.mapRect(rect).toAlignedRect();-
2752 const QPoint delta = mapped.topLeft();-
2753 return
never executed: return matrix * QTransform().translate(-delta.x(), -delta.y());
matrix * QTransform().translate(-delta.x(), -delta.y());
never executed: return matrix * QTransform().translate(-delta.x(), -delta.y());
0
2754}-
2755-
2756bool QImageData::convertInPlace(QImage::Format newFormat, Qt::ImageConversionFlags flags)-
2757{-
2758 if (format == newFormat
format == newFormatDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2759 return
never executed: return true;
true;
never executed: return true;
0
2760-
2761-
2762 if (ref.load() > 1
ref.load() > 1Description
TRUEnever evaluated
FALSEnever evaluated
|| !own_data
!own_dataDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2763 return
never executed: return false;
false;
never executed: return false;
0
2764-
2765 InPlace_Image_Converter converter = qimage_inplace_converter_map[format][newFormat];-
2766 if (converter
converterDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
2767 return
never executed: return converter(this, flags);
converter(this, flags);
never executed: return converter(this, flags);
0
2768 else if (format > QImage::Format_Indexed8
format > QImag...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
&& newFormat > QImage::Format_Indexed8
newFormat > QI...ormat_Indexed8Description
TRUEnever evaluated
FALSEnever evaluated
&& !qimage_converter_map[format][newFormat]
!qimage_conver...at][newFormat]Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2769-
2770-
2771 return
never executed: return convert_generic_inplace(this, newFormat, flags);
convert_generic_inplace(this, newFormat, flags);
never executed: return convert_generic_inplace(this, newFormat, flags);
0
2772 else-
2773 return
never executed: return false;
false;
never executed: return false;
0
2774}-
2775QDebug operator<<(QDebug dbg, const QImage &i)-
2776{-
2777 QDebugStateSaver saver(dbg);-
2778 dbg.resetFormat();-
2779 dbg.nospace();-
2780 dbg << "QImage(";-
2781 if (i.isNull()
i.isNull()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
2782 dbg << "null";-
2783 }
never executed: end of block
else {
0
2784 dbg << i.size() << ",format=" << i.format() << ",depth=" << i.depth();-
2785 if (i.colorCount()
i.colorCount()Description
TRUEnever evaluated
FALSEnever evaluated
)
0
2786 dbg << ",colorCount=" << i.colorCount();
never executed: dbg << ",colorCount=" << i.colorCount();
0
2787 dbg << ",devicePixelRatio=" << i.devicePixelRatio()-
2788 << ",bytesPerLine=" << i.bytesPerLine() << ",byteCount=" << i.byteCount();-
2789 }
never executed: end of block
0
2790 dbg << ')';-
2791 return
never executed: return dbg;
dbg;
never executed: return dbg;
0
2792}-
2793static constexpr QPixelFormat pixelformats[] = {-
2794-
2795 QPixelFormat(),-
2796-
2797 QPixelFormat(QPixelFormat::Indexed,-
2798 1,-
2799 0,-
2800 0,-
2801 0,-
2802 0,-
2803 0,-
2804 QPixelFormat::IgnoresAlpha,-
2805 QPixelFormat::AtBeginning,-
2806 QPixelFormat::NotPremultiplied,-
2807 QPixelFormat::UnsignedByte,-
2808 QPixelFormat::CurrentSystemEndian),-
2809-
2810 QPixelFormat(QPixelFormat::Indexed,-
2811 1,-
2812 0,-
2813 0,-
2814 0,-
2815 0,-
2816 0,-
2817 QPixelFormat::IgnoresAlpha,-
2818 QPixelFormat::AtBeginning,-
2819 QPixelFormat::NotPremultiplied,-
2820 QPixelFormat::UnsignedByte,-
2821 QPixelFormat::CurrentSystemEndian),-
2822-
2823 QPixelFormat(QPixelFormat::Indexed,-
2824 8,-
2825 0,-
2826 0,-
2827 0,-
2828 0,-
2829 0,-
2830 QPixelFormat::IgnoresAlpha,-
2831 QPixelFormat::AtBeginning,-
2832 QPixelFormat::NotPremultiplied,-
2833 QPixelFormat::UnsignedByte,-
2834 QPixelFormat::CurrentSystemEndian),-
2835-
2836 QPixelFormat(QPixelFormat::RGB,-
2837 8,-
2838 8,-
2839 8,-
2840 0,-
2841 0,-
2842 8,-
2843 QPixelFormat::IgnoresAlpha,-
2844 QPixelFormat::AtBeginning,-
2845 QPixelFormat::NotPremultiplied,-
2846 QPixelFormat::UnsignedInteger,-
2847 QPixelFormat::CurrentSystemEndian),-
2848-
2849 QPixelFormat(QPixelFormat::RGB,-
2850 8,-
2851 8,-
2852 8,-
2853 0,-
2854 0,-
2855 8,-
2856 QPixelFormat::UsesAlpha,-
2857 QPixelFormat::AtBeginning,-
2858 QPixelFormat::NotPremultiplied,-
2859 QPixelFormat::UnsignedInteger,-
2860 QPixelFormat::CurrentSystemEndian),-
2861-
2862 QPixelFormat(QPixelFormat::RGB,-
2863 8,-
2864 8,-
2865 8,-
2866 0,-
2867 0,-
2868 8,-
2869 QPixelFormat::UsesAlpha,-
2870 QPixelFormat::AtBeginning,-
2871 QPixelFormat::Premultiplied,-
2872 QPixelFormat::UnsignedInteger,-
2873 QPixelFormat::CurrentSystemEndian),-
2874-
2875 QPixelFormat(QPixelFormat::RGB,-
2876 5,-
2877 6,-
2878 5,-
2879 0,-
2880 0,-
2881 0,-
2882 QPixelFormat::IgnoresAlpha,-
2883 QPixelFormat::AtBeginning,-
2884 QPixelFormat::NotPremultiplied,-
2885 QPixelFormat::UnsignedShort,-
2886 QPixelFormat::CurrentSystemEndian),-
2887-
2888 QPixelFormat(QPixelFormat::RGB,-
2889 5,-
2890 6,-
2891 5,-
2892 0,-
2893 0,-
2894 8,-
2895 QPixelFormat::UsesAlpha,-
2896 QPixelFormat::AtBeginning,-
2897 QPixelFormat::Premultiplied,-
2898 QPixelFormat::UnsignedInteger,-
2899 QPixelFormat::CurrentSystemEndian),-
2900-
2901 QPixelFormat(QPixelFormat::RGB,-
2902 6,-
2903 6,-
2904 6,-
2905 0,-
2906 0,-
2907 0,-
2908 QPixelFormat::IgnoresAlpha,-
2909 QPixelFormat::AtBeginning,-
2910 QPixelFormat::NotPremultiplied,-
2911 QPixelFormat::UnsignedInteger,-
2912 QPixelFormat::CurrentSystemEndian),-
2913-
2914 QPixelFormat(QPixelFormat::RGB,-
2915 6,-
2916 6,-
2917 6,-
2918 0,-
2919 0,-
2920 6,-
2921 QPixelFormat::UsesAlpha,-
2922 QPixelFormat::AtEnd,-
2923 QPixelFormat::Premultiplied,-
2924 QPixelFormat::UnsignedInteger,-
2925 QPixelFormat::CurrentSystemEndian),-
2926-
2927 QPixelFormat(QPixelFormat::RGB,-
2928 5,-
2929 5,-
2930 5,-
2931 0,-
2932 0,-
2933 0,-
2934 QPixelFormat::IgnoresAlpha,-
2935 QPixelFormat::AtBeginning,-
2936 QPixelFormat::NotPremultiplied,-
2937 QPixelFormat::UnsignedShort,-
2938 QPixelFormat::CurrentSystemEndian),-
2939-
2940 QPixelFormat(QPixelFormat::RGB,-
2941 5,-
2942 5,-
2943 5,-
2944 0,-
2945 0,-
2946 8,-
2947 QPixelFormat::UsesAlpha,-
2948 QPixelFormat::AtBeginning,-
2949 QPixelFormat::Premultiplied,-
2950 QPixelFormat::UnsignedInteger,-
2951 QPixelFormat::CurrentSystemEndian),-
2952-
2953 QPixelFormat(QPixelFormat::RGB,-
2954 8,-
2955 8,-
2956 8,-
2957 0,-
2958 0,-
2959 0,-
2960 QPixelFormat::IgnoresAlpha,-
2961 QPixelFormat::AtBeginning,-
2962 QPixelFormat::NotPremultiplied,-
2963 QPixelFormat::UnsignedByte,-
2964 QPixelFormat::CurrentSystemEndian),-
2965-
2966 QPixelFormat(QPixelFormat::RGB,-
2967 4,-
2968 4,-
2969 4,-
2970 0,-
2971 0,-
2972 0,-
2973 QPixelFormat::IgnoresAlpha,-
2974 QPixelFormat::AtBeginning,-
2975 QPixelFormat::NotPremultiplied,-
2976 QPixelFormat::UnsignedShort,-
2977 QPixelFormat::CurrentSystemEndian),-
2978-
2979 QPixelFormat(QPixelFormat::RGB,-
2980 4,-
2981 4,-
2982 4,-
2983 0,-
2984 0,-
2985 4,-
2986 QPixelFormat::UsesAlpha,-
2987 QPixelFormat::AtEnd,-
2988 QPixelFormat::Premultiplied,-
2989 QPixelFormat::UnsignedShort,-
2990 QPixelFormat::CurrentSystemEndian),-
2991-
2992 QPixelFormat(QPixelFormat::RGB,-
2993 8,-
2994 8,-
2995 8,-
2996 0,-
2997 0,-
2998 8,-
2999 QPixelFormat::IgnoresAlpha,-
3000 QPixelFormat::AtEnd,-
3001 QPixelFormat::NotPremultiplied,-
3002 QPixelFormat::UnsignedByte,-
3003 QPixelFormat::CurrentSystemEndian),-
3004-
3005 QPixelFormat(QPixelFormat::RGB,-
3006 8,-
3007 8,-
3008 8,-
3009 0,-
3010 0,-
3011 8,-
3012 QPixelFormat::UsesAlpha,-
3013 QPixelFormat::AtEnd,-
3014 QPixelFormat::NotPremultiplied,-
3015 QPixelFormat::UnsignedByte,-
3016 QPixelFormat::CurrentSystemEndian),-
3017-
3018 QPixelFormat(QPixelFormat::RGB,-
3019 8,-
3020 8,-
3021 8,-
3022 0,-
3023 0,-
3024 8,-
3025 QPixelFormat::UsesAlpha,-
3026 QPixelFormat::AtEnd,-
3027 QPixelFormat::Premultiplied,-
3028 QPixelFormat::UnsignedByte,-
3029 QPixelFormat::CurrentSystemEndian),-
3030-
3031 QPixelFormat(QPixelFormat::BGR,-
3032 10,-
3033 10,-
3034 10,-
3035 0,-
3036 0,-
3037 2,-
3038 QPixelFormat::IgnoresAlpha,-
3039 QPixelFormat::AtBeginning,-
3040 QPixelFormat::NotPremultiplied,-
3041 QPixelFormat::UnsignedInteger,-
3042 QPixelFormat::CurrentSystemEndian),-
3043-
3044 QPixelFormat(QPixelFormat::BGR,-
3045 10,-
3046 10,-
3047 10,-
3048 0,-
3049 0,-
3050 2,-
3051 QPixelFormat::UsesAlpha,-
3052 QPixelFormat::AtBeginning,-
3053 QPixelFormat::Premultiplied,-
3054 QPixelFormat::UnsignedInteger,-
3055 QPixelFormat::CurrentSystemEndian),-
3056-
3057 QPixelFormat(QPixelFormat::RGB,-
3058 10,-
3059 10,-
3060 10,-
3061 0,-
3062 0,-
3063 2,-
3064 QPixelFormat::IgnoresAlpha,-
3065 QPixelFormat::AtBeginning,-
3066 QPixelFormat::NotPremultiplied,-
3067 QPixelFormat::UnsignedInteger,-
3068 QPixelFormat::CurrentSystemEndian),-
3069-
3070 QPixelFormat(QPixelFormat::RGB,-
3071 10,-
3072 10,-
3073 10,-
3074 0,-
3075 0,-
3076 2,-
3077 QPixelFormat::UsesAlpha,-
3078 QPixelFormat::AtBeginning,-
3079 QPixelFormat::Premultiplied,-
3080 QPixelFormat::UnsignedInteger,-
3081 QPixelFormat::CurrentSystemEndian),-
3082-
3083 QPixelFormat(QPixelFormat::Alpha,-
3084 0,-
3085 0,-
3086 0,-
3087 0,-
3088 0,-
3089 8,-
3090 QPixelFormat::UsesAlpha,-
3091 QPixelFormat::AtBeginning,-
3092 QPixelFormat::Premultiplied,-
3093 QPixelFormat::UnsignedByte,-
3094 QPixelFormat::CurrentSystemEndian),-
3095-
3096 QPixelFormat(QPixelFormat::Grayscale,-
3097 8,-
3098 0,-
3099 0,-
3100 0,-
3101 0,-
3102 0,-
3103 QPixelFormat::IgnoresAlpha,-
3104 QPixelFormat::AtBeginning,-
3105 QPixelFormat::NotPremultiplied,-
3106 QPixelFormat::UnsignedByte,-
3107 QPixelFormat::CurrentSystemEndian),-
3108};-
3109static_assert(bool(sizeof(pixelformats) / sizeof(*pixelformats) == QImage::NImageFormats), "sizeof(pixelformats) / sizeof(*pixelformats) == QImage::NImageFormats");-
3110-
3111-
3112-
3113-
3114QPixelFormat QImage::pixelFormat() const noexcept-
3115{-
3116 return
never executed: return toPixelFormat(format());
toPixelFormat(format());
never executed: return toPixelFormat(format());
0
3117}-
3118-
3119-
3120-
3121-
3122QPixelFormat QImage::toPixelFormat(QImage::Format format) noexcept-
3123{-
3124 ((!(static_cast<int>(format) < NImageFormats)) ? qt_assert("static_cast<int>(format) < NImageFormats",__FILE__,5172) : qt_noop());-
3125 return
never executed: return pixelformats[format];
pixelformats[format];
never executed: return pixelformats[format];
0
3126}-
3127-
3128-
3129-
3130-
3131QImage::Format QImage::toImageFormat(QPixelFormat format) noexcept-
3132{-
3133 for (int i = 0; i < NImageFormats
i < NImageFormatsDescription
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
3134 if (format == pixelformats[i]
format == pixelformats[i]Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3135 return
never executed: return Format(i);
Format(i);
never executed: return Format(i);
0
3136 }
never executed: end of block
0
3137 return
never executed: return Format_Invalid;
Format_Invalid;
never executed: return Format_Invalid;
0
3138}-
3139-
3140__attribute__((visibility("default"))) void qt_imageTransform(QImage &src, QImageIOHandler::Transformations orient)-
3141{-
3142 if (orient == QImageIOHandler::TransformationNone
orient == QIma...sformationNoneDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
3143 return;
never executed: return;
0
3144 if (orient == QImageIOHandler::TransformationRotate270
orient == QIma...ationRotate270Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
3145 src = rotated270(src);-
3146 }
never executed: end of block
else {
0
3147 src = std::move(src).mirrored(orient & QImageIOHandler::TransformationMirror,-
3148 orient & QImageIOHandler::TransformationFlip);-
3149 if (orient & QImageIOHandler::TransformationRotate90
orient & QImag...mationRotate90Description
TRUEnever evaluated
FALSEnever evaluated
)
0
3150 src = rotated90(src);
never executed: src = rotated90(src);
0
3151 }
never executed: end of block
0
3152}-
3153-
3154-
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9