我想允许用户上传一个图像文件,然后我想处理它,使其最终成为一个正方形,除非不裁剪它。假设有人上传了一张 1400 宽、800 像素高的图像,我想把它变成一张 1400x1400 的图像,上传的图像居中在顶部和底部的两个白条之间,以弥补额外的高度。
我该怎么做?到目前为止,我发现的所有解决方案都涉及裁剪,或者使用不同的语言。
谁能指出我正确的方向?
您需要做的就是:
- 加载图像和数据。
- 获取图像数据(
MIME
、height
、width
)并取高度和宽度的最大值来确定整体尺寸。 - 使用具有步骤 2 中达到的最大值的
imagecreatetruecolor
创建图像标识符。
使用 - 一些简单的数学运算将图像粘贴到正确的位置(使用左右距离:
(MAX_VALUE - MIN_VALUE) / 2
,其中MAX_VALUE
将是 1400px,MIN_VALUE
在您的示例中是 800px) - 使用 GD 函数保存图像标识符。
参考: http://www.php.net/manual/en/book.image.php