我们正在处理近20M的现有图像(不是文件),所有图像都已转换为原始PNG数据。每个图像总是640x480,我们希望它们全部保存为方形640x640文件,原始图像位于较大画布的顶部,留下额外的160px以便添加描述性文本。
我们检索的PNG数据如下:
data:image/png;base64,iVBORw0 ... kJggg==
我已经看到很多帖子和示例显示了调整大小,透明度,颜色等的工作,但无法确定从哪里开始使用现有的PNG数据创建新的空640x640“画布”。
如果这是一个重复的问题,我很乐意删除它,如果我可以得到一些指导如何开始。在不知道入门的基础知识的情况下,谷歌搜索“image create png canvas”等内容并没有帮助。很明显,图像处理对我来说是新的,所以如果我不够清楚就道歉。提前谢谢。
答案 0 :(得分: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);
当然你可能想要添加一些支票,背景颜色等等,但我想你会准备好从这开始。