0

我们正在处理近 2000 万张现有图像(不是文件),所有这些图像都已转换为原始 PNG 数据。每个图像始终为 640x480,我们希望它们都保存为方形 640x640 文件,原始图像位于较大画布的顶部,留下额外的较低 160 像素用于添加描述性文本。

我们正在检索的 PNG 数据是这样的:

data:image/png;base64,iVBORw0 ... kJggg==

我看到很多帖子和示例展示了调整大小、透明度、颜色等方面的工作,但无法确定从哪里开始使用现有 PNG 数据创建新的空 640x640“画布”。

如果这是一个重复的问题,如果我能得到一些关于如何开始的指导,我很乐意将其删除。在不了解入门的基础知识的情况下,谷歌搜索“图像创建 png 画布”之类的内容并没有帮助。显然,图像处理对我来说是新的,所以如果我不够清楚,请道歉。提前致谢。

4

1 回答 1

1

这应该适合你:

$imgData = 'data:image/png;base64,iVBORw0 ... kJggg==';
$img = imagecreatefromstring(base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $imgData)));
$targetImage = imagecreatetruecolor(640, 640);
imagecopyresampled($targetImage, $img, 0, 0, 0, 0, 640, 480, 640, 480);
imagepng($targetImage, $yourPath);

当然,您可能想要添加一些检查、背景颜色等,但我认为您已经准备好开始使用它了。

于 2018-01-09T18:36:35.107 回答