Добро пожаловать, Гость!
Помогите с методом - Страница 1
Помощь мастерам | Помогите с методом
Скиталец :
Доброго времени суток.
вот часть скрипта
[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% пожалуйста помогите.
Помогите с методом
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% пожалуйста помогите.
Комментарии:
Скиталец 25 Фев 2021
Автор темы
Сибирский, как раз гегнерирование шмотов меня не парит там жикуери с левого сервиса у меня только copy(); работает пусть творят
Автор темы
Сибирский, как раз гегнерирование шмотов меня не парит там жикуери с левого сервиса у меня только copy(); работает пусть творят
Сибирский 25 Фев 2021
Скиталец, тут роль играет версия php для 7,8 версии такая генерация не напрягет процессор и на сотую долю процента, так что переживать тут особо не стоит, с другой стороны даже единичный набор будет вызываться не единожды для одного пользователя в течении времени до создания следующего набора, сколько придется генерировать рисунков без аналогии? Простая математика
Скиталец, тут роль играет версия php для 7,8 версии такая генерация не напрягет процессор и на сотую долю процента, так что переживать тут особо не стоит, с другой стороны даже единичный набор будет вызываться не единожды для одного пользователя в течении времени до создания следующего набора, сколько придется генерировать рисунков без аналогии? Простая математика
Скиталец 25 Фев 2021
Автор темы
Сибирский, там каждый шмот создается из набора изоборажений отдельно основа например берет украшеный какардой и гвардейским уголком цвет ультрамарин вместо уголка может быть перья или руна на булавке вариантов многовато и так каждый шмот а делоть их статичными не оригинально
Автор темы
Сибирский, там каждый шмот создается из набора изоборажений отдельно основа например берет украшеный какардой и гвардейским уголком цвет ультрамарин вместо уголка может быть перья или руна на булавке вариантов многовато и так каждый шмот а делоть их статичными не оригинально
Скиталец 25 Фев 2021
Автор темы
Сибирский, видишь там такая муть короче неизвестно как будет выглядеть шлем до того как юзвери его создадут.... неговоря про ид обвесы и цвета короче создаваться они будут почти всегда
Автор темы
Сибирский, видишь там такая муть короче неизвестно как будет выглядеть шлем до того как юзвери его создадут.... неговоря про ид обвесы и цвета короче создаваться они будут почти всегда
Сибирский 25 Фев 2021
Скиталец, а решение с css не будет на руку скорости загрузки страницы и потребляемому трафику. Но, попробуй оба варианта, можно провести тест драйв и юзвери сами скажут как лучше, если конечно будет заметна разница
Скиталец, а решение с css не будет на руку скорости загрузки страницы и потребляемому трафику. Но, попробуй оба варианта, можно провести тест драйв и юзвери сами скажут как лучше, если конечно будет заметна разница
Скиталец 25 Фев 2021
Автор темы
Сибирский, я уже думал об этом, но оставалась надежда на css решение... чтобы юзверь на своей стороне его резал а не за счет системы...
Автор темы
Сибирский, я уже думал об этом, но оставалась надежда на css решение... чтобы юзверь на своей стороне его резал а не за счет системы...
Сибирский 25 Фев 2021
Скиталец, у тебя уже есть
$image = imageCreateFromPng('images/maneken/'.$pol.'.png');
ресемплируй его в миниатюру. Его можно оптимизировать посредством аналогии, то есть одинаковый набор не создавать заново а просто брать готовый. Например есть вещи, манекен мужской, шапка ид 15, доспех ид 46 к примеру и т д, создаем хэш как имя файла из идентификаторов и пишем в это имя аватар и его миниатюру с префиксом mini, при следующем вызове просто проверяем есть такой файл и если нет то собираем его если есть просто выводим. Нагрузка будет только на новые наборы, затем все файлы будут созданы и функция будет просто отдавать гтовый рисунок без пересборки
Скиталец, у тебя уже есть
$image = imageCreateFromPng('images/maneken/'.$pol.'.png');
ресемплируй его в миниатюру. Его можно оптимизировать посредством аналогии, то есть одинаковый набор не создавать заново а просто брать готовый. Например есть вещи, манекен мужской, шапка ид 15, доспех ид 46 к примеру и т д, создаем хэш как имя файла из идентификаторов и пишем в это имя аватар и его миниатюру с префиксом mini, при следующем вызове просто проверяем есть такой файл и если нет то собираем его если есть просто выводим. Нагрузка будет только на новые наборы, затем все файлы будут созданы и функция будет просто отдавать гтовый рисунок без пересборки