2

我想生成的效果与 此 StackOverflow 线程中的示例完全相同:(相关问题)

1.调整图像大小 2.
保持比例3.添加
或填充白色背景的非图像区域

以下是此过程的三个示例:
1. 如果原件是正方形,无论是 640*640 还是 1024*1024,只需将其调整为目标尺寸,例如 480*480 即可。
在此处输入图像描述

  1. 如果原始输入是垂直矩形,输出不应该被裁剪并且仍然居中如下(红色虚线边缘标记只是为了更容易看到背景是白色的,并且在图像调整为 480*480 px 后保持比例)
    在此处输入图像描述

  2. 如果原始输入是水平矩形,输出如下图,白色背景,保持比例和图像未裁剪,因此图像处理后不会丢失任何内容。
    在此处输入图像描述

所以在我澄清了这样一个问题之后,我想知道:

  1. 上面提到的这种自定义图像调整大小是否有一个通用名称?
  2. 想知道如何使用php图像库来实现想象一下?使用 php-imagine 是否可行,或者必须切换到另一个库,例如imagemagick

PS如果你想在图像调整视频调整中实现效果,你可以使用下面的FFMPEG单行命令。(感谢@Mulvya,是的,下面的代码适用于视频和图像格式)

[在ffmpeg控制台中运行下面的内置代码以实现上述resize效果]

[视频调整大小]

ffmpeg -i "[raw video url or videofile location.mp4]"  -vf "scale=iw*min(480/iw\,480/ih):ih*min(480/iw\,480/ih),pad=480:480:(480-iw)/2:(480-ih)/2:color=white" [save_path_and_filename].mp4  

[图像调整大小]

ffmpeg -i "[raw image url or imagefile location.jpg]"  -vf "scale=iw*min(480/iw\,480/ih):ih*min(480/iw\,480/ih),pad=480:480:(480-iw)/2:(480-ih)/2:color=white" [save_path_and_filename].jpg
4

1 回答 1

0

抱歉,我没有给你完整的答案,评论太长了,但这可以使用一些数学和 php 的http://php.net/manual/en/ref.image.php本地完成

检查 imagecopyresize() imageecreate() imagescale 等区域。这是一个非常复杂的库,所以你必须做一些尝试和错误才能到达你想去的地方。

根据经验,您可以:

  • 创建一个空图像,imagecreatetruecolor()
  • 将背景颜色更改为白色
  • 使用 imagecopyresample() imagecopyresize() 获取图像的一部分并将其粘贴到新创建的图像中
  • 将此图像导出为 gif、png、jpg。图像PNG(),图像JPG()。
  • 加水印
  • 还有更多。

抱歉,我没有更完整的答案,但根据您的需要,可能需要几个小时/小时才能使其完美。玩得开心。

最重要的是,如果您了解 ffmpeg,则可以使两者一起工作并制作出色的媒体输出。祝贺你

于 2017-02-06T02:59:40.927 回答