Fixed scaling for int32

This commit is contained in:
2023-11-21 18:31:07 +01:00
parent 50c070b169
commit b9bf6bf183
3 changed files with 22 additions and 9 deletions
+17
View File
@@ -567,6 +567,23 @@ void RawImage::downscaleTo(uint32_t size)
}*/
}
std::pair<float, float> RawImage::unitScale() const
{
float min = *std::min_element(m_stats.m_min, m_stats.m_min + 4);
float max = *std::max_element(m_stats.m_max, m_stats.m_max + 4);
if(m_origType == UINT32)
{
min /= (float)UINT32_MAX;
max /= (float)UINT32_MAX;
}
if(min < 0.0f || max > 1.0f)
return {1.0f / (max - min), min / (max - min)};
else
return {1.0f, 0.0f};
}
std::shared_ptr<RawImage> RawImage::fromPlanar(const RawImage &img)
{
return RawImage::fromPlanar(img.data(), img.width(), img.height(), img.channels(), img.type());