css3 – CSS背后的数学背景是什么?

我正在创建一个“图像生成器”,用户可以上传图像并添加文字和/或绘制图像。输出的图像是固定尺寸(698×450)。

在客户端,当用户上传图像时,将其设置为背景大小为698×450的div的背景。这使得它很好地填满了地区。

最终组合的图像由PHP使用GD函数生成。我的问题是,如何在PHP中以与CSS相同的方式获得图像的扩展。我希望PHP脚本的结果看起来像在CSS中设置的图像一样,就像上面那样。
有人知道浏览器使用background-size:cover如何计算如何适当地缩放图像?我想把它翻译成PHP

谢谢

解决方法

这是覆盖计算背后的逻辑。

您有四个基本值:

imgWidth // your original img width
imgHeight

containerWidth // your container  width (here 698px)
containerHeight

从这些值得出的两个比值:

imgRatio = (imgHeight / imgWidth)       // original img ratio
containerRatio = (containerHeight / containerWidth)     // container ratio

您想要找到两个新值:

finalWidth // the scaled img width
finalHeight

所以:

if (containerRatio > imgRatio) 
{
    finalHeight = containerHeight
    finalWidth = (containerHeight / imgRatio)
} 
else 
{
    finalWidth = containerWidth 
    finalHeight = (containerWidth / imgRatio)
}

…你有相当于一个背景大小:封面。

相关文章

前言 最近项目做完,用户需要兼容IE,于是开展了兼容性的调整工作。边调整边想感叹IE真是个沙雕。。特将...
前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习。 1、text-indent text-indent 属性规...
前言 政府网站会遇到公祭日的时候,网站整体颜色变灰的情况。今天正好调了一下。在此把解决方案分享给大...
需求 项目里有个消息中心,当有消息的时候,小铃铛图标可以晃两下,提示当前有信息。 实现过程 书写css...
html代码 css代码 效果图
在一些界面上 , 如果每个icon都去找图片还是相当麻烦的 , 直接使用css画出icon就方便的多了 , 下面两个...