ldc-pfcgen/app/Routes/web.php
2021-02-03 10:16:35 +01:00

23 lines
842 B
PHP

<?php
use App\Kernel;
use jucksearm\barcode\Datamatrix;
Kernel::app()->get('/{code}', function ($request, $response, $args) {
$s = intval($request->getQueryParams()['s'] ?? 300);
$s = is_int($s) ? $s : 300;
$s = $s <= env('MinPixSize', 60) ?
env('MinPixSize', 60) : ($s >= env('MaxPixSize', 2000) ? env('MaxPixSize', 2000) : $s);
$m = round(20 * 2 / 300);
$m = $m <= 5 ? 5 : ($m >= 300 ? 300 : $m);
$image = @Datamatrix::factory()
->setSize($s)
->setMargin($m)
->setCode($args['code'])->getDatamatrixPngData();
$body = $response->getBody();
$body->write($image);
$response = $response->withHeader("Content-type", 'image/png');
$response = $response->withHeader("Cache-Control", 'no-cache');
$response = $response->withHeader("Last-Modified", gmdate('D, d M Y H:i:s') . ' GMT');
return $response;
});