【发布时间】:2022-06-15 05:01:50
【问题描述】:
我有一个接受多个文件上传的上传表单。每个文件都是 32px x 32px,我正在尝试生成一个包含网格中每个图像的图像。每行允许 30 个图块,列大小是根据上传的图块数量计算的。例如,如果有 120 张图片,则有 4 列。
我面临的问题是,我似乎无法计算 imagecopy 中每个图块的位置。我收到错误消息:第二个 foreach 循环的“foreach() 参数必须是数组|对象类型,给定字符串”。
<?php
$num_files = count($_FILES['myFiles']['tmp_name']);
$image = imagecreate(960, ceil(round(30 / $num_files)));
foreach($_FILES['myFiles']['tmp_name'] as $row => $columns) {
foreach($columns as $col => $filename) {
$tile = imagecreatefrompng($filename);
imagecopy($image, $tile, $row * 32, $col * 32, 0, 0, 32, 32);
}
}
header('Content-Type: image/png');
imagepng($image);
【问题讨论】:
-
你能
print_r( $_FILES );让我们看看你的数组开始的样子吗? -- 显然foreach($_FILES['myFiles']['tmp_name'] as $row => $columns) {将$columns设置为字符串而不是数组。
标签: php foreach imagecreatefrompng