2

我正在使用 .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 像素)是保持我的纵横比的正确宽度和高度,并且我的裁剪坐标显然可以保持不变,因为我只是缩放图像。现在,当我再次查看此内容时,情况看起来很棒。

测试1

(我把它放在灰色背景上,这样你就可以看到图像边界)

然而我的问题是当我想从两边敲掉 10 个像素并设置一个100梨形的宽度时。我想这样做是因为在我使用的图片库中,我需要能够容纳四张图片。

现在,如果我指定这个,我的图像将显示,但在一个顶部和底部有两个小条的白色信箱中,我很感激,因为我没有在左侧的裁剪中添加 10 个像素,或者从我的裁剪中减去 10 个像素正确的:

upload/289.jpg?crop=22,30,562,330&width=100&height=67

测试2

所以很明显我需要调整我的裁剪X1 (22)和裁剪X2 (562)。但是,它似乎并不那么容易,因为如果我分别设置为32和,它仍然保留信箱552,我认为我需要补偿从 120 下降到 100 的宽度。

我认为需要在缩放之前应用两侧所需的 10 个像素或其他东西(?),但我不知道如何解决这个算法,我真的迷失了!

有道理?任何图像处理/数学向导可以在这里帮助我吗?

4

1 回答 1

1

只需添加&mode=crop以让模块为您计算(并确保您使用的是 V3.1+)。

我相信您的困惑源于裁剪坐标(默认情况下)是相对于原始图像的,而宽度/高度值是图像的缩放大小。即,宽度设置的 10 个像素等于该特定图像的裁剪矩形上的 50 个像素左右。使用cropxscale并且cropyscale您可以更改这些裁剪值的解释方式。&cropxscale=100&cropyscale=100使它们成为百分比,同时&cropxscale=120&cropyscale=67让您指定相对于缩放图像大小的裁剪坐标。

此外,V3.1 及更高版本还允许您手动裁剪和自动裁剪:

前任。?crop=22,30,562,330&width=100&height=67&mode=crop.

该模块将首先应用您的裁剪设置,然后再次进行裁剪,以确保您的身高和身高规格完全匹配。如果您不需要精确的宽度和高度,则可以使用 &mode=max 代替。

此外,您可以使用锚设置调整自动裁剪的应用方式。

我不完全确定您的裁剪坐标来自何处或其他情况如何,但与往常一样,可以通过 support@imageresizing.net 与我联系。

您还可以在 imageresizing.net/docs/reference 查看命令参考

我想我可以添加一页关于一起使用裁剪命令的示例,因为该理论可能是数学密集型的。很抱歉花了这么长时间才找到这篇文章;我希望你能发电子邮件support@imageresizing.net,我可以立即回答你的问题。

与往常一样,如果有什么我可以帮忙的,请给我发一封电子邮件,或者在 SO 上发帖,然后通过电子邮件给我发送一个链接 :) 我每次更新http://imageresizing.net文档 5-20 次平均一周让事情变得更清晰或更详细,所以每当有人感到困惑时,我总是很感兴趣,因为这通常意味着文档需要工作,或者需要从更多地方链接。

于 2012-01-07T07:40:26.623 回答