Kaydet (Commit) 4396c1f1 authored tarafından Cédric Bosdonnat's avatar Cédric Bosdonnat

Template manager: keep thumbnails ratio when scaling down

Change-Id: Ic597dd9fd12895c0d21f678cba44feba9f6fcd47
üst 133f9264
......@@ -137,10 +137,33 @@ BitmapEx TemplateAbstractView::scaleImg (const BitmapEx &rImg, long width, long
{
BitmapEx aImg = rImg;
int sWidth = std::min(aImg.GetSizePixel().getWidth(),width);
int sHeight = std::min(aImg.GetSizePixel().getHeight(),height);
if ( !rImg.IsEmpty() )
{
const Size& aImgSize = aImg.GetSizePixel();
double nRatio = double(aImgSize.getWidth()) / double(aImgSize.getHeight());
long nDestWidth = aImgSize.getWidth();
long nDestHeight = aImgSize.getHeight();
// Which one side is the overflowing most?
long nDistW = aImgSize.getWidth() - width;
long nDistH = aImgSize.getHeight() - height;
// Use the biggest overflow side to make it fit the destination
if ( nDistW >= nDistH && nDistW > 0 )
{
nDestWidth = width;
nDestHeight = width / nRatio;
}
else if ( nDistW < nDistH && nDistH > 0 )
{
nDestHeight = height;
nDestWidth = height * nRatio;
}
aImg.Scale(Size(sWidth,sHeight),BMP_SCALE_INTERPOLATE);
aImg.Scale(Size(nDestWidth,nDestHeight));
}
return aImg;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment