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

60 lines
2.6 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 = '';
public static $content_type = '';
public static $content_id = '';
public static $tip = '';
static function parceUrl($str)
{
$massiv = explode("-", $str);
self::$filename = $massiv[1];
self::$w = $massiv[2];
self::$h = $massiv[3];
self::$content_type = $massiv[5];
self::$content_id = $massiv[6];
self::$tip = $massiv[0];
if ($massiv[4])
self::$wattermark = $massiv[4];
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'] . '/' . self::$content_type . '/' . self::$content_id . '/' . $filename . '.' . self::$tip;
}
}
modClass::parceUrl($_GET['id']);
//Получаем путь к оригиналу
modClass::getOriginalImg(modClass::$filename);
/* прерываем все дальнейшие попытки, если не существует оригинального файла */
if (!file_exists(modClass::$originalFile))
die('Нет файла' . modClass::$originalFile);
mkdir('cache/img', 0700);
//Разрешен водяной знак и он существует....
if (modClass::$wattermark == 1 && 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);
$image->output(50);
}
die();
?>