Добро пожаловать, Гость!
Помогите с методом
Помощь мастерам | Помогите с методом


Помогите с методом
25 Фев 2021Доброго времени суток.
вот часть скрипта
[spoiler=PHP CODE]
<?php
class users extends core {
/*
-----------------------------------------------------------------
Собираем аватар
-----------------------------------------------------------------
*/
public static function maneken_create($pol,$arr,$id){
$result = mysqli_query(self::$DB, 'UPDATE `users` SET `inv` = "'.$arr.'" WHERE `id` = "'.$id.'"');
if($result === false)
die(mysqli_error(self::$DB));// Если запрос не прошел тормозим выполнение скрипта.
else{
$image = imageCreateFromPng('images/maneken/'.$pol.'.png');
foreach ($arr as $value) {
$value_stryng = (int)$value;
$maneken = imageCreateFromPng('images/maneken/'.$pol.'/'.$value_stryng.'.png');
imagecopy($image, $maneken, 0, 0, 0, 0, 480, 640);
}
imagePng($image,'images/avatar/'.$id.'.png');// Основной
$img_i = imagecreatefromPng('images/avatar/'.$id.'.png');
$img_o = imagecreatetruecolor(150, 150);
imagecopy($img_o, $img_i, 0, 0, ($pol==0)?'150':'170', 30, 150, 150);
imagePng($img_o, 'images/avatar/'.$id.'_mini.png');// Мини
}
}
/*======END======*/
}
?>
[/spoiler]
я не самый сильный мастер, и прошу вашей помощи с оптимизацией данного метода.
прямо глаз цепляется за обращение к только что созданному аватару но как сделать иначе просто незнаю... вызов метода тормозит систему сайта почти на 10% пожалуйста помогите.
Комментарии:


Автор темы
Сибирский, как раз гегнерирование шмотов меня не парит там жикуери с левого сервиса у меня только copy(); работает пусть творят

Скиталец, тут роль играет версия php для 7,8 версии такая генерация не напрягет процессор и на сотую долю процента, так что переживать тут особо не стоит, с другой стороны даже единичный набор будет вызываться не единожды для одного пользователя в течении времени до создания следующего набора, сколько придется генерировать рисунков без аналогии? Простая математика



Автор темы
Сибирский, там каждый шмот создается из набора изоборажений отдельно основа например берет украшеный какардой и гвардейским уголком цвет ультрамарин вместо уголка может быть перья или руна на булавке вариантов многовато и так каждый шмот а делоть их статичными не оригинально


Автор темы
Сибирский, видишь там такая муть короче неизвестно как будет выглядеть шлем до того как юзвери его создадут.... неговоря про ид обвесы и цвета короче создаваться они будут почти всегда

Скиталец, а решение с css не будет на руку скорости загрузки страницы и потребляемому трафику. Но, попробуй оба варианта, можно провести тест драйв и юзвери сами скажут как лучше, если конечно будет заметна разница



Автор темы
Сибирский, я уже думал об этом, но оставалась надежда на css решение... чтобы юзверь на своей стороне его резал а не за счет системы...

Скиталец, у тебя уже есть
$image = imageCreateFromPng('images/maneken/'.$pol.'.png');
ресемплируй его в миниатюру. Его можно оптимизировать посредством аналогии, то есть одинаковый набор не создавать заново а просто брать готовый. Например есть вещи, манекен мужской, шапка ид 15, доспех ид 46 к примеру и т д, создаем хэш как имя файла из идентификаторов и пишем в это имя аватар и его миниатюру с префиксом mini, при следующем вызове просто проверяем есть такой файл и если нет то собираем его если есть просто выводим. Нагрузка будет только на новые наборы, затем все файлы будут созданы и функция будет просто отдавать гтовый рисунок без пересборки