Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143

Как сделать фоновое изображение вместо цвета?

08.04.2013, 21:33. Показов 1986. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Копался в компьютере и нашёл скрипт мониторинга игрового сервера.

Что сейчас: (см. первое вложение)
Какой фон надо: (см. второе вложение)

Поменять нужно фон, который за зелёной полоской и надписями. В коде зелёная полоска - это online.png

Изображение открываю через URL: http://site.ru/status.php?serv... 95.31.4.11

PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
function Server($ip,$port){
    if(!isset($port)) $port = 25565;
    $socket = @fsockopen($ip, $port);
    if ($socket !== false){
        @fwrite($socket, "\xFE");
        $data = "";
        $data = @fread($socket, 1024);
        @fclose($socket);
        if ($data !== false && substr($data, 0, 1) == "\xFF"){
            $info = explode("\xA7", mb_convert_encoding(substr($data,1), "iso-8859-1", "utf-16be"));
            $server['name'] = substr($info[0], 1);
            $server['online'] = $info[1];
            $server['max'] = $info[2];
        } else {
            $server['error'] = 'Ошибка';
        }
    } else {
        $server['error'] = 'Выключен';
    }
return $server;
}
 
function htmlcolor($img,$color){
    sscanf($color, "%2x%2x%2x", $red, $green, $blue);
return ImageColorAllocate($img,$red,$green,$blue);
return($c);
}
 
function right_position($img,$font_size,$font,$text){
    $box = imagettfbbox($font_size, 0, $font, $text);
    $position['x'] = (imagesx($img) - ($box[2]-$box[0]))-7;
    $position['y'] = (imagesy($img) + ($box[1]-$box[7]))/2;
    return $position;
}
 
function left_position($img,$font_size,$font,$text){
    $box = imagettfbbox($font_size, 0, $font, $text);
    $lposition['x'] = 7;
    $lposition['y'] = (imagesy($img) + ($box[0]-$box[7]))/2;
    return $lposition;
}
 
$w = 190;
$h = 20;
$ip = $_GET['ip'];
$port = isset($_GET['port']) ? $_GET['port'] : 25565;
$name = isset($_GET['server']) ? $_GET['server'] : 'Minecraft';
$font = 'arial.ttf';
$font_size = 8;
$font_ok_color = '252525';
$font_error_color = '252525';
$background = 'ebebeb';
 
$img = imagecreatetruecolor($w,$h);
$server = Server($ip,$port);
$font = './'.$font;
if(isset($server['error'])) {
    $bg = imagecreatefrompng('offline.png');
    imagecopy($img, $bg, 0, 0, 0, 0, imagesx($img), imagesy($img));
    $pos = right_position($img,$font_size,$font,$server['error']);
    imagettftext($img, $font_size, 0, $pos['x'], $pos['y'], htmlcolor($img,$font_error_color), $font, $server['error']);
    $lpos = left_position($img,$font_size,$font,$name);
    imagettftext($img, $font_size, 0, $lpos['x'], $lpos['y'], htmlcolor($img,$font_error_color), $font, $name);
    imagedestroy($bg);
} else {
    imagefill($img,0,0,htmlcolor($img,$background));
    $percent = $w/$server['max']*$server['online'];
    $bg = imagecreatefrompng('online.png');
    imagecopymerge($img, $bg, 0, 0, 0, 0, $percent, $w, 100);
    $pos = right_position($img,$font_size,$font,$server['online'].' / '.$server['max']);
    imagettftext($img, $font_size, 0, $pos['x'], $pos['y'], htmlcolor($img,$font_ok_color), $font, $server['online'].' / '.$server['max']);
    $lpos = left_position($img,$font_size,$font,$server['online'].' / '.$server['max']);
    imagettftext($img, $font_size, 0, $lpos['x'], $lpos['y'], htmlcolor($img,$font_ok_color), $font, $name);
    imagedestroy($bg);
}
 
header ("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
Помогите реализовать, пожалуйста.
Изображения
  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2013, 21:33
Ответы с готовыми решениями:

Grub4Dos - Как сделать фоновое изображение?
Доброго времени уважаемые пользователи киберфорума! Вот захотел я изобрести свой велосипед с использованием GRUB4DOS но столкнулся с...

Как сделать наложение картинки на фоновое изображение?
В общем думал, скачаю png с прозрачным фоном и все будет кошерно, но нет: Я создал 2 piсbox, один поверх другого, одному присвоил...

Как сделать, чтобы изображение (Не фоновое!) повторялось по горизонтали?
Как сделать, чтобы изображение (Не фоновое!!!) повторялось по горизонтали?

17
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
08.04.2013, 21:37  [ТС]
Скрипт показывает заполненность сервера (19 игроков из 120 возможных)
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
08.04.2013, 23:47
Думаю выражу общее мнение если предложу почитать про функции начинающиеся с "image" на великом мануале и походу скрипта выяснить где и что поменять надо.
0
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
09.04.2013, 20:52  [ТС]
Я читал и нашёл функцию как с прозрачностью, так и с фоном. Но куда их писать?

Скрипт не мой.
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
09.04.2013, 21:12
Их не надо писать, их надо найти и поменять параметры.
0
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
10.04.2013, 18:15  [ТС]
Что я только не пробовал...
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
10.04.2013, 18:48
Типа сделайте мне готовое решение?
Так и быть, мне как раз надо 10 репы набрать, но сперва вопрос:
Цитата Сообщение от HardSEO Посмотреть сообщение
Что сейчас: (см. первое вложение)
Какой фон надо: (см. второе вложение)
Вижу только одно вложение.
Цитата Сообщение от HardSEO Посмотреть сообщение
Изображение открываю через URL: http://site.ru/status.php?serv... 95.31.4.11
Не понял к чему это и там 404-тая ошибка.

P.S. Я это к тому что вы даже не рассказываете что вы делали и чего вы конкретно не знаете, со стороны это выглядит так: "сделайте мне вот это и это и за бесплатно".
Но пофиг, чего не сделаешь ради репы.
0
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
10.04.2013, 19:45  [ТС]
http://site.ru/status.php?serv... 95.31.4.11

Это не вложение, а пример. Т.е. я вставляю изображение через <img src="тот адрес" />.
Я эту ссылку указал, чтобы можно было обратиться к серверу для получения количества игроков, если нужно запустить скрипт у себя. Проще говоря: http://путь-к-скрипту/скрипт.php?параметры. Я имел в виду это.

Я вставлял разные функции вместо каждой, поэтому глупо было бы писать здесь 20 моих попыток.

А вложений 2: полоска включенного сервера (Play 19 / 120) и полоска фона, который находится за зелёной полоской и текстом.
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
10.04.2013, 21:39
Цитата Сообщение от HardSEO Посмотреть сообщение
Это не вложение, а пример. Т.е. я вставляю изображение через <img src="тот адрес" />.
Я эту ссылку указал, чтобы можно было обратиться к серверу для получения количества игроков, если нужно запустить скрипт у себя. Проще говоря: http://путь-к-скрипту/скрипт.php?параметры. Я имел в виду это.
Понял, только если я вставлю этот адрес у себя в скрипте то получу тоже самое что вижу в браузере...

Так, ну попробуем сперва так пульнуть: на 67 строке сотрите-уничтожьте это
PHP Скопировано
1
imagefill($img,0,0,htmlcolor($img,$background));
и напишите это
PHP Скопировано
1
2
$my_bg_image = 'vtoroe_vlozhenie.png';
imagecopy($img, $my_bg_image, 0, 0, 0, 0, imagesx($my_bg_image), imagesy($my_bg_image));
где вместо "vtoroe_vlozhenie.png" напишите название файла с желаемой картинкой.

Добавлено через 2 минуты
P.S. Картинка должна находиться в том же каталоге где и скрипт.

Добавлено через 27 секунд
2P.S. Помогло?
1
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
10.04.2013, 22:09  [ТС]
Нет, какая-то ошибка.
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
10.04.2013, 22:12
А все потому-что по вашей ссылке мы не получаем то что надо, как я и говорил.
1
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
10.04.2013, 22:15  [ТС]
...
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
} else {
    //imagefill($img,0,0,htmlcolor($img,$background));
    $my_bg_image = 'empty.png';
    imagecopy($img, $my_bg_image, 0, 0, 0, 0, imagesx($my_bg_image), imagesy($my_bg_image));
    $percent = $w/$server['max']*$server['online'];
    $bg = imagecreatefrompng('online.png');
    imagecopymerge($img, $bg, 0, 0, 0, 0, $percent, $w, 100);
    $pos = right_position($img,$font_size,$font,$server['online'].' / '.$server['max']);
    imagettftext($img, $font_size, 0, $pos['x'], $pos['y'], htmlcolor($img,$font_ok_color), $font, $server['online'].' / '.$server['max']);
    $lpos = left_position($img,$font_size,$font,$server['online'].' / '.$server['max']);
    imagettftext($img, $font_size, 0, $lpos['x'], $lpos['y'], htmlcolor($img,$font_ok_color), $font, $name);
    imagedestroy($bg);
}
...
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
10.04.2013, 22:23
PHP Скопировано
58
if(isset($server['error']))
Суть в том что у вас срабатывает это условие и выполняется первый блок, а не тот что указали вы.

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

Добавлено через 3 минуты
В общем убедитесь что сервак 95.31.4.11 принимает подключения на порт 25565
1
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
10.04.2013, 22:25  [ТС]
Меня интересует фон только для того, что после else, потому что у выключенного сервера нет игроков и вся полоска показывается сразу (offline.png).

http://onlymc.ru/php/mon/statu... port=25565
Порт 25565, сервер работает.
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
10.04.2013, 22:26
Дык для того чтобы ее увидеть надо чтобы сервер был включен
1
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
10.04.2013, 22:29  [ТС]
Он включен, текущий мониторинг на сайте плохо работает и иногда показывает, что сервер выключен. Тут можно проверить статус: http://monitor.zone-game.info/
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
10.04.2013, 23:38
PHP Скопировано
4
$socket = @fsockopen($ip, $port);
4 строка удалите символ собаки (@), должно будет появиться сообщение об ошибке, в студию ее.
P.S. Надеюсь все действие на тестовом сервере ведется.

Добавлено через 8 минут
Если ничего не измениться, то вместо 4 строки вставте это
PHP Скопировано
1
2
3
4
$socket = fsockopen($ip, $port, $errno, $errstr);
if (!$socket) {
echo "ERROR: $errno - $errstr<br>\n";
}
Добавлено через 34 минуты
Так, я сразу на два фронта работаю и уже засыпаю так что ногами не бить, пока все что я написал выше можно не делать, я немного разобрался и уже вижу ваши ошибки, сечас поработаю над ними.

Добавлено через 10 минут
Так возвращаем 4 строку в первоначальный вид и удаляем все что дописывали.
Это
PHP Скопировано
1
2
$my_bg_image = 'vtoroe_vlozhenie.png';
imagecopy($img, $my_bg_image, 0, 0, 0, 0, imagesx($my_bg_image), imagesy($my_bg_image));
меняем на это
PHP Скопировано
1
2
$my_bg_image = imagecreatefrompng('vtoroe_vlozhenie.png');
imagecopy($img, $my_bg_image, 0, 0, 0, 0, imagesx($my_bg_image), imagesy($my_bg_image));
главное чтоб расширение у вашей картинки было ".png".
А src у вашей картинки со статусом сервера должен быть следующим:
http://onlymc.ru/php/mon/status.php?server=Minecraft&ip=95.31.4.11&port=2556 5

Добавлено через 8 минут
Хотя сервер может быть и Play, короче на сегодня все, надеюсь разберетесь

Добавлено через 1 минуту
P.S. А редактируете вы все-таки на горячку
1
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 143
11.04.2013, 18:47  [ТС]
Вот теперь работает, спасибо
Результат: http://onlymc.ru/php/mon/statu... 95.31.4.11

А если убрать @, то написано "Ошибка". Play - это название одного из наших серверов и они отличаются набором модификаций, которые делают игру разнообразнее и интереснее. Minecraft - это лишь общее название игры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2013, 18:47
Помогаю со студенческими работами здесь

Как сделать для TextBox, RichTextbox фоновое изображение
Обшарил яндекс,гугл не чего путного не нашел для VB.Net Как я понял у текстбокса не предусмотрена такая возможность,его даже прозрачным...

Фоновое изображение сделать правильным
сайт wsfox.ru помогите изображения подогнать так, что бы полноценная картинка была, а не как сейчас

Как Сделать PNG (прозрачное изображение) вместо окна формы
В интернете куча всего, прямого решения гугленье не дало. ПРошу помощи зала.

Как сменить фоновое изображение?
Как сменить фоновое изображение при наведении курсора мыши на изображение? Само изображение помещено в PictureBox через ресурсы, в...

Как сделать, чтобы вместо цвета при рисовании в TImage ставилась фоновая картинка
Здравствуйте. Я начинающий программист, столкнулся с такой проблемой. я Рисую в Imaage рисунок Image1.Picture:=nil; with...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер