我正在创建一个学生证系统,每个学生都有自己的。
为此,我使用干预图像来获取学生数据并放入标准 ID 卡模板。
我所做的基本代码是:
<?php
[...]
$card = Image::make('card_id-model.png');
$card->text('CARD ID', 20, 40, function($font) {
$font->file('arial.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
$card->text('NAME: STUDENT\'S NAME', 20, 60, function($font) {
$font->file('arial.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
$card->text('CODE: STUDENT\'S CODE', 20, 80, function($font) {
$font->file('arial.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
$card->save('card_id - student\'s code.png');
这种方式比较慢,考虑到我每次创建图像时都会调用该函数。所以我决定首先实例化图像,因为它将用于所有卡片 id。好吧,但是我在循环应用它以同时生成几个时遇到了问题,因为文本被覆盖了。
<?php
[...]
$card = Image::make('card_id-model.png');
$card->text('CARD ID', 20, 40, function($font) {
$font->file('arial.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
for ($students as $student) {
$card->text('NAME: ' . $student->name, 20, 60, function($font) {
$font->file('arial.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
$card->text('CODE: ' . $student->code, 20, 80, function($font) {
$font->file('arial.ttf');
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
$card->save('card_id - ' . $student->code . '.png');
}
这是我发现的最好和最快的大规模生产方式。有人有任何提示吗?
慕侠2389804
SMILET