最新消息:想得多,做的少。一天到晚瞎鸡巴搞。

图片等比例缩放

Qt 阿虚 685浏览 0评论

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

.     核心思想: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);
            }
        }
    }
}

转载请注明:虚无 » 图片等比例缩放

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址