prokat/api/modules/img/index.php
2025-06-16 18:28:08 +05:00

55 lines
2.5 KiB
PHP
Executable File

<?php
ini_set('display_errors', 0);
include_once 'api/php/thumbs-master/thumbs.php';
class modClass
{
public static $filename = ''; // str
public static $w = 500; // int
public static $h = 500; // int
public static $originalFile = ''; // int
public static $wattermark = 0; // 0 - можно если есть, 1 - не надо
public static $wattermarkFile = '';
static function parceUrl($str)
{
$massiv = explode("-", $str);
self::$filename = $massiv[0];
self::$w = $massiv[1];
self::$h = $massiv[2];
if ($massiv[3])
self::$wattermark = $massiv[3];
self::$wattermarkFile = 'skin/' . $_SERVER['SERVER_NAME'] . '/img/wm.png';
}
static function getOriginalImg($filename)
{
$str = \DB::getRow('SELECT `content_type`, `content_id`, `tip` FROM `img` WHERE `filename`=? LIMIT 1', $filename);
self::$originalFile = 'img/' . $_SERVER['SERVER_NAME'] . '/' . $str['content_type'] . '/' . $str['content_id'] . '/' . $filename . '.' . $str['tip'];
}
}
modClass::parceUrl($_GET['id']);
//Получаем путь к оригиналу
modClass::getOriginalImg(modClass::$filename);
/* прерываем все дальнейшие попытки, если не существует оригинального файла */
if (!file_exists(modClass::$originalFile))
die('Нет файла' . modClass::$originalFile);
@mkdir('cache/img', 0700);
//Разрешен водяной знак и он существует....
if (modClass::$wattermark == 0 && file_exists(modClass::$wattermarkFile)) {
$image = new Thumbs(modClass::$originalFile);
$image->thumb(modClass::$w, modClass::$h);
$image->saveJPG('/tmp/' . modClass::$filename . '.jpg');
$image2 = new Thumbs('/tmp/' . modClass::$filename . '.jpg');
$image2->watermark(modClass::$wattermarkFile, 'bottom-right');
$image2->output();
$image2->saveWEBP('cache/img/' . modClass::$filename . '.webp', 50);
$image2->saveWEBP('cache/img/' . modClass::$filename . '-' . modClass::$w . '-' . modClass::$h . '.webp', 50);
unlink('/tmp/' . modClass::$filename . '.jpg');
}
if (modClass::$wattermark == 1 || !file_exists(modClass::$wattermarkFile)) {
$image = new Thumbs(modClass::$originalFile);
$image->thumb(modClass::$w, modClass::$h);
$image->saveWEBP('cache/img/' . modClass::$filename . '-' . modClass::$w . '-' . modClass::$h . '.webp', 50);
//echo 'cache/img/' . modClass::$filename . '-' . modClass::$w . '-' . modClass::$h . '.webp';
$image->output(50);
}
die();
?>