Files

110 lines
3.3 KiB
PHP
Raw Permalink Normal View History

2020-06-07 09:02:34 +02:00
<?php
require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/okvirovi.php';
2020-08-30 06:18:05 +02:00
$FOLDER_SLIKE= __DIR__ . '/admin/slike/';
2020-06-07 09:02:34 +02:00
$okvir_id = $_GET['okvir'] * 1 ?? 0;
$okvir = $okvirovi[$okvir_id];
$slika = $_GET['slika'] ?? 'slika';
// samo propusti slova i brojeve za naziv
$slika = preg_replace('/[^A-Za-z0-9]+/', '', $slika);
$ekstenzija = $_GET['ekstenzija'] ?? 'jpg';
// samo propusti slova za ekstenziju
$ekstenzija = preg_replace('/[^A-Za-z]+/', '', $ekstenzija);
$ekstenzija = substr($ekstenzija,0, 4);
preg_match('/(\d+)[xX](\d+)cm/',$okvir,$rezultat);
$sirina = $rezultat[1] * 1;
$duzina = $rezultat[2] * 1;
$imagine = new Imagine\Gd\Imagine();
$okvir_image = $imagine->open(__DIR__ . '/okvirovi/' . $okvir);
2020-08-30 06:18:05 +02:00
$slika_image = $imagine->open(__DIR__ . '/admin/slike/' . $slika . ".$ekstenzija");
2020-06-07 09:02:34 +02:00
$okvir_size = $okvir_image->getSize();
$unutrasnji_size = $radne_velicine[$okvir_id];
$slika_size = $slika_image->getSize();
$finalna_dimenzija = $okvir_size->getHeight();
// smanji sliku da moze stati u okvir
$slika_vodoravna = $slika_size->getWidth() > $slika_size->getHeight();
if ($slika_vodoravna) {
$okvir_image->rotate(90);
$okvir_size = $okvir_image->getSize();
$unutrasnji_size = rotiraj_za_90($unutrasnji_size);
}
$slika_size = $slika_size->scale( best_fit_odnos($unutrasnji_size, $slika_size) );
$slika_image = $slika_image->thumbnail($slika_size, \Imagine\Image\ImageInterface::THUMBNAIL_OUTBOUND );
$slika_size = $slika_image->getSize();
// napravi bijelo platno velicine okvira
//
$palette = $slika_image->palette();
$color = $palette->color('#FFF', 0);
$gotova_slika = $imagine->create($okvir_size, $color);
// zalijepi sliku na centar platna
$pocetak_s_lijeva = ($okvir_size->getWidth() - $slika_size->getWidth()) / 2;
$pocetak_odozgo = ($okvir_size->getHeight() - $slika_size->getHeight()) / 2;
$gotova_slika->paste($slika_image, new Imagine\Image\Point($pocetak_s_lijeva,$pocetak_odozgo));
2020-08-30 07:44:57 +02:00
2020-08-30 08:04:48 +02:00
// nacrtaj kod artikla
2020-08-30 08:06:44 +02:00
$font = $imagine->font(__DIR__ . '/uokvirime.ttf', 15, $palette->color('#AAA', 100));
2020-08-30 09:14:34 +02:00
$mark = $slika . "-" . $okvir_id;
2020-08-30 08:04:48 +02:00
$size_estimate = $font->box($mark, 0 );
2020-08-30 08:06:44 +02:00
$tekst_image = $imagine->create($size_estimate, $palette->color('#fff', 100));
2020-08-30 08:04:48 +02:00
$tekst_paleta = $tekst_image->palette();
$drawer = $tekst_image->draw();
$drawer->text(
$mark,
$font
,
new Imagine\Image\Point(0, 0));
// uokviri platno
$gotova_slika->paste($okvir_image, new Imagine\Image\Point(0,0));
// dodaj mu kod
$gotova_slika->paste($tekst_image, new Imagine\Image\Point(0,0));
2020-08-30 09:14:34 +02:00
// ucitaj i dodaj watermark
$watermark = $imagine->open(__DIR__ . '/uokvirime.png');
$size = $gotova_slika->getSize();
$wSize = $watermark->getSize();
$bottomRight = new Imagine\Image\Point($size->getWidth() - $wSize->getWidth(), $size->getHeight() - $wSize->getHeight());
$gotova_slika->paste($watermark, $bottomRight);
2020-08-30 08:04:48 +02:00
2020-08-30 09:17:15 +02:00
$imeslike = "$okvir_id" . "$slika";
2020-08-30 07:20:10 +02:00
2020-08-30 06:11:56 +02:00
$etag = bin2hex(mhash(MHASH_ADLER32, $imeslike));
2020-07-10 21:08:48 +02:00
header("Etag: $etag");
2020-07-10 21:55:24 +02:00
$seconds_to_cache = 86400;
$ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT";
header("Expires: $ts");
header("Pragma: cache");
header("Cache-Control: max-age=$seconds_to_cache");
2020-08-30 07:29:48 +02:00
2020-06-07 09:02:34 +02:00
// snimi i prikazi
2020-06-10 19:43:29 +02:00
//$gotova_slika->save(__DIR__ . "/cache/tip" . $okvir_id . "slika" . $slika . ".jpg");
2020-08-30 09:14:34 +02:00
$gotova_slika->show("jpg");
2020-06-07 09:02:34 +02:00
// koristiti CDN za kes