KAT format is still faster, benchmark result:
********* Start testing of tst_QImageReader *********
Config: Using QTest library 4.12.0, Katie 4.12.0
PASS : tst_QImageReader::initTestCase()
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
449,473.586 CPU ticks per iteration (total: 224,736,793, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
12,192,500.92 CPU ticks per iteration (total: 6,096,250,460, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
4,553,239.292 CPU ticks per iteration (total: 2,276,619,646, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
1,847,145.64 CPU ticks per iteration (total: 923,572,823, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
19,422,744.28 CPU ticks per iteration (total: 9,711,372,141, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
12,389,194.51 CPU ticks per iteration (total: 6,194,597,257, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
653,286.280 CPU ticks per iteration (total: 326,643,140, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
2,728,198.060 CPU ticks per iteration (total: 1,364,099,030, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
2,455,954.036 CPU ticks per iteration (total: 1,227,977,018, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
10,524,974.96 CPU ticks per iteration (total: 5,262,487,482, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
8,238,501.942 CPU ticks per iteration (total: 4,119,250,971, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
74,886,112.602 CPU ticks per iteration (total: 37,443,056,301, iterations: 500)
RESULT : tst_QImageReader::readImage():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
63,337,570.664 CPU ticks per iteration (total: 31,668,785,332, iterations: 500)
PASS : tst_QImageReader::readImage()
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.kat":
1,950,330.16 CPU ticks per iteration (total: 975,165,082, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.kat":
13,089,959.61 CPU ticks per iteration (total: 6,544,979,808, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.kat":
5,447,284.922 CPU ticks per iteration (total: 2,723,642,461, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.png":
3,342,337.962 CPU ticks per iteration (total: 1,671,168,981, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.png":
20,326,863.998 CPU ticks per iteration (total: 10,163,431,999, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.png":
13,279,201.09 CPU ticks per iteration (total: 6,639,600,546, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.ppm":
1,498,119.28 CPU ticks per iteration (total: 749,059,644, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.ppm":
3,641,910.638 CPU ticks per iteration (total: 1,820,955,319, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.ppm":
3,370,265.894 CPU ticks per iteration (total: 1,685,132,947, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.svg":
9,147,455.174 CPU ticks per iteration (total: 4,573,727,587, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench.xpm":
9,729,368.638 CPU ticks per iteration (total: 4,864,684,319, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-large.xpm":
75,966,954.086 CPU ticks per iteration (total: 37,983,477,043, iterations: 500)
RESULT : tst_QImageReader::setScaledSize():"/home/smil3y/katie/tests/benchmarks/gui/image/qimagereader//images/bench-transparent.xpm":
64,719,740.840 CPU ticks per iteration (total: 32,359,870,420, iterations: 500)
PASS : tst_QImageReader::setScaledSize()
PASS : tst_QImageReader::cleanupTestCase()
Totals: 4 passed, 0 failed, 0 skipped
********* Finished testing of tst_QImageReader *********
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
png_set_read_fn(png_ptr, this, qt_png_read);
png_read_info(png_ptr, info_ptr);
- png_uint_32 width;
- png_uint_32 height;
+ png_uint_32 width = 0;
+ png_uint_32 height = 0;
int bit_depth;
int color_type;
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, 0, 0, 0);
uchar *data = image->d->data;
const int bpl = image->bytesPerLine();
- png_byte **row_pointers = new png_bytep[height];
for (uint y = 0; y < height; y++) {
- row_pointers[y] = QFAST_SCAN_LINE(data, bpl, y);
+ png_read_row(png_ptr, QFAST_SCAN_LINE(data, bpl, y), NULL);
}
- png_read_image(png_ptr, row_pointers);
-
image->d->dpmx = png_get_x_pixels_per_meter(png_ptr, info_ptr);
image->d->dpmy = png_get_y_pixels_per_meter(png_ptr, info_ptr);
png_read_end(png_ptr, end_info);
png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
- delete [] row_pointers;
return true;
}