23 lines
842 B
PHP
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;
|
|
});
|