PHP 调整图像固定大小但保持方向
我需要使用 GD 将 php 中的图像大小调整为固定大小,但保持方向(纵向/横向),这些是:
纵向:375 x 500px 横向:500 x 375px
我尝试过的所有内容总是忽略方向并使它们全部横向。
有人可以帮忙吗?
I need to resize images in php using GD to a fixed size but maintain the orientation (portrait/landscape), these are:
portrait: 375 x 500px
landscape: 500 x 375px
Everything I have tried always ignores the orientation and makes them all landscape.
Can anyone help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
检查传入图像的宽度和高度。如果宽度比高度宽,请将目标尺寸设置为 500 x 375,否则将其设置为 375 x 500。然后使用这些目标尺寸运行调整大小代码。
Check the width and height of the incoming image. If the width is wider than the height, make your target size 500 x 375, otherwise make it 375 x 500. Then run the resize code with those target dimensions.
这是我使用的图像类中的一个方法,用于计算图像的缩放尺寸。它的工作原理是将图像放入方框中。
您可以设置
$box = 500
,然后传递您尝试调整大小的图像的$x
和$y
,它将始终返回正确调整尺寸以保持纵横比。Here is a method from an image class I use that calculates the scaled dimensions of an image. It works by fitting an image into a square box.
You can set
$box = 500
and then pass the$x
and$y
of the image you are trying to resize and it will always return the correct resized dimensions maintaining the aspect ratio.这个问题在这里得到了正确的回答:如何检测照片的拍摄角度,并像桌面应用程序在查看时自动旋转网站显示?
简单的答案是,您需要使用
exif_read_data()
函数获取照片的“方向”属性,然后您可以使用该值来确定是否需要旋转照片。上面的答案包含示例 PHP 代码,向您展示如何做到这一点。This question was answered correctly here: How to detect shot angle of photo, and auto rotate for website display like desktop apps do on viewing?
The short answer is, you need to use the
exif_read_data()
function to get the "Orientation" attribute of a photo, and then you can use that value to determine whether you need to rotate your photo. The answer above contains sample PHP code that shows you how to do that.