Benchmark wxIMAGE_QUALITY_BOX_AVERAGE too for completeness

Check the speed of wxImage::Scale() using this algorithm too.

As expected, it's between normal and high quality when upscaling and
exactly the same as high quality when shrinking (because it is actually
the algorithm used for shrinking for wxIMAGE_QUALITY_HIGH).
This commit is contained in:
Vadim Zeitlin 2022-02-23 00:01:52 +00:00
parent e25b47ee32
commit 4e05ee9c5a

View File

@ -79,6 +79,14 @@ BENCHMARK_FUNC(EnlargeNormal)
wxIMAGE_QUALITY_NORMAL).IsOk(); wxIMAGE_QUALITY_NORMAL).IsOk();
} }
BENCHMARK_FUNC(EnlargeBoxAverage)
{
const wxImage& image = GetTestImage();
const double factor = Bench::GetNumericParameter(150) / 100.;
return image.Scale(factor*image.GetWidth(), factor*image.GetHeight(),
wxIMAGE_QUALITY_BOX_AVERAGE).IsOk();
}
BENCHMARK_FUNC(EnlargeHighQuality) BENCHMARK_FUNC(EnlargeHighQuality)
{ {
const wxImage& image = GetTestImage(); const wxImage& image = GetTestImage();
@ -95,6 +103,14 @@ BENCHMARK_FUNC(ShrinkNormal)
wxIMAGE_QUALITY_NORMAL).IsOk(); wxIMAGE_QUALITY_NORMAL).IsOk();
} }
BENCHMARK_FUNC(ShrinkBoxAverage)
{
const wxImage& image = GetTestImage();
const double factor = Bench::GetNumericParameter(50) / 100.;
return image.Scale(factor*image.GetWidth(), factor*image.GetHeight(),
wxIMAGE_QUALITY_BOX_AVERAGE).IsOk();
}
BENCHMARK_FUNC(ShrinkHighQuality) BENCHMARK_FUNC(ShrinkHighQuality)
{ {
const wxImage& image = GetTestImage(); const wxImage& image = GetTestImage();