从矩形图像创建新的方形图像而不进行裁剪


creating a new square image from a rectangular image without cropping

我想允许用户上传一个图像文件,然后我想处理它,使其最终成为一个正方形,除非不裁剪它。假设有人上传了一张 1400 宽、800 像素高的图像,我想把它变成一张 1400x1400 的图像,上传的图像居中在顶部和底部的两个白条之间,以弥补额外的高度。

我该怎么做?到目前为止,我发现的所有解决方案都涉及裁剪,或者使用不同的语言。

谁能指出我正确的方向?

您需要做的就是:

  1. 加载图像和数据。
  2. 获取图像数据(MIMEheightwidth)并取高度和宽度的最大值来确定整体尺寸。
  3. 使用具有步骤 2 中达到的最大值的 imagecreatetruecolor 创建图像标识符。
  4. 使用
  5. 一些简单的数学运算将图像粘贴到正确的位置(使用左右距离:(MAX_VALUE - MIN_VALUE) / 2,其中MAX_VALUE将是 1400px,MIN_VALUE在您的示例中是 800px)
  6. 使用 GD 函数保存图像标识符。

参考: http://www.php.net/manual/en/book.image.php