阿虚
Hello World!
Hello World!
图片等比例缩放

.     图片按照规定的大小等比例不变形缩放后显示

.     核心思想:oldHeight / oldWidth = newHeight / newWidth. -> newHeight = oldHeight * newWidth / oldWidth 或者 newWidth = newHeight * oldWidth / oldHeight

void ImageScaling(QSize resize, QSize& imageSize)
{
    int nWidth = resize.width();
    int nHeight = resize.height();
    
    int imageWidth = imageSize.width();
    int imageHeight = imageSize.height();
    if (imageWidth > 0 && imageHeight > 0) 
    {
        //宽度与高度的比例大于或等于要求显示的比例(说明比较宽)
        if (imageWidth / imageHeight >= nWidth / nHeight) 
        {
            //如果宽度大于要求显示的宽度
            if (imageHeight > nWidth) 
            {
                imageSize.setWidth(nWidth); //那么图片就显示要显示的宽度
                imageSize.setHeight((imageHeight * nWidth) / imageWidth);
            }
            else 
            {
                imageSize.setWidth(imageWidth);
                imageSize.setHeight(imageHeight);
            }
        }
        else 
        {
            //说明比较高
            if (imageHeight > nHeight) 
            {
                imageSize.setHeight(nHeight);
                imageSize.setWidth((imageWidth * nHeight) / imageHeight);
            }
            else 
            {
                imageSize.setWidth(imageWidth);
                imageSize.setWidth(imageHeight);
            }
        }
    }
}

阿虚

文章作者

发表评论

textsms
account_circle
email

Hello World!

图片等比例缩放
.     图片按照规定的大小等比例不变形缩放后显示 .     核心思想:oldHeight / oldWidth = newHeight / newWidth. -> newHeight = oldHeight * newWidth / oldWidth 或者 newWidth…
扫描二维码继续阅读
2015-11-15