我正在使用 .NET 的www.imageresizing.net工具动态创建图库和缩略图。这个组件的真正优点是您可以通过更改 URL 来重新裁剪和调整图像大小。
现在,我所拥有的是我所需纵横比 (9:5) 的画廊图像,使用以下内容正确渲染:
upload/289.jpg?crop=22,30,562,330&width=540&height=300
您会注意到上面定义的裁剪坐标22,30,562,330 (X1,Y1,X2,Y2)
从底部选择了 22 像素、30 像素、562 像素、330 像素的区域。所以基本上是一个 540x300px 粗略裁剪区域,位于较大图像的中心(640x427,但这与问题无关)。
现在如前所述,这显示得很好,并且纵横比正确。然后,我可以使用以下方法将 URL 更改为缩略图版本:
upload/289.jpg?crop=22,30,562,330&width=120&height=67
我之前计算出 120x67 (确切地说是 120.6x67 像素)是保持我的纵横比的正确宽度和高度,并且我的裁剪坐标显然可以保持不变,因为我只是缩放图像。现在,当我再次查看此内容时,情况看起来很棒。
(我把它放在灰色背景上,这样你就可以看到图像边界)
然而我的问题是当我想从两边敲掉 10 个像素并设置一个100
梨形的宽度时。我想这样做是因为在我使用的图片库中,我需要能够容纳四张图片。
现在,如果我指定这个,我的图像将显示,但在一个顶部和底部有两个小条的白色信箱中,我很感激,因为我没有在左侧的裁剪中添加 10 个像素,或者从我的裁剪中减去 10 个像素正确的:
upload/289.jpg?crop=22,30,562,330&width=100&height=67
所以很明显我需要调整我的裁剪X1 (22)
和裁剪X2 (562)
。但是,它似乎并不那么容易,因为如果我分别设置为32
和,它仍然保留信箱552
,我认为我需要补偿从 120 下降到 100 的宽度。
我认为需要在缩放之前应用两侧所需的 10 个像素或其他东西(?),但我不知道如何解决这个算法,我真的迷失了!
有道理?任何图像处理/数学向导可以在这里帮助我吗?