用php创建多个图像

时间:2013-10-10 15:15:25

标签: php image

所以我有一个名为“names.txt”的文件有多行。每行包含一个名称。 我还有一个名为“participant.jpg”的模型图像

这是我的代码:

<?php
$handle = fopen("names.txt", "r");

function create_img($line)
{
    $im = imagecreatefromjpeg("./images/participant.jpg");
    $textcolor = imagecolorallocate($im, 0, 0, 0);

    // Write the string at the top left
    imagettftext($im, 50, 0, 80, 640, $textcolor, 'nexa.ttf', $line);

    imagejpeg($im, './uploads/' . $line . '.jpg');
    imagedestroy($im);
}

if ($handle) {
    while (($line = fgets($handle)) !== false) {
        create_img($line);
    }
} else {
    die('Cannot open file..');
}
?>

因此,对于每个新行,我想创建一张特定的照片并将其“上传”到我的上传文件夹。

它只为最后一行创建图像,其余部分则返回此错误:

Warning: imagejpeg() [<a href='function.imagejpeg'>function.imagejpeg</a>]: Unable to open './uploads/Botond.jpg' for writing: Invalid argument in C:\lab\ccc-badges\badges.php on line 12

这是一些$ line输出

Alina Popescu
Adrian Oltean
Patricia-Andrada Leven
Stanescu Gheorghe

1 个答案:

答案 0 :(得分:1)

这个问题是因为每个newline的结尾fgets(),除了最后一行。

在写入文件时使用imagejpeg($im, './uploads/' . trim($line) . '.jpg');