68 lines
2.1 KiB
PHP
68 lines
2.1 KiB
PHP
<?php
|
|
|
|
require __DIR__ . '/vendor/autoload.php';
|
|
require __DIR__ . '/okvirovi.php';
|
|
|
|
$FOLDER_SLIKE= __DIR__ . '/slike/';
|
|
|
|
$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);
|
|
$slika_image = $imagine->open(__DIR__ . '/slike/' . $slika . ".$ekstenzija");
|
|
|
|
|
|
$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));
|
|
|
|
// uokviri platno
|
|
$gotova_slika->paste($okvir_image, new Imagine\Image\Point(0,0));
|
|
|
|
// snimi i prikazi
|
|
// $gotova_slika->save(__DIR__ . "/cache/tip" . $okvir_id . "slika" . $slika . ".jpg")->show("jpg");
|
|
// koristiti CDN za kes
|
|
|