Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для skapunker
-30 / 25 / 12
Регистрация: 13.12.2013
Сообщений: 1,459

Обработка цветов в PHP, как это работает

27.03.2021, 17:03. Показов 523. Ответов 5
Метки php (Все метки)

Студворк — интернет-сервис помощи студентам
Всем приветы! Помогите пожалуйста понять логику работы.

Есть такой цикл.
Тут меня беспокоит, то что цвет делится на 0x33. Как я понимаю, это сделано чтобы уменьшить разброс цветовой палитры.
Собственно вопрос: что вместо этого поставить, чтобы увеличить разброс цветовой палитры, тобишь чтобы было больше разных цветов?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        for($x = 0; $x < $size[0]; $x += $image_granularity)
        {
            for($y = 0; $y < $size[1]; $y += $image_granularity)
            {
                $thisColor = imagecolorat($img, $x, $y);
                $rgb = imagecolorsforindex($img, $thisColor);
                $red = round(round(($rgb['red'] / 0x33)) * 0x33);
                $green = round(round(($rgb['green'] / 0x33)) * 0x33);
                $blue = round(round(($rgb['blue'] / 0x33)) * 0x33);
                $thisRGB = sprintf('%02X%02X%02X', $red, $green, $blue);
                if(array_key_exists($thisRGB, $colors))
                {
                     $colors[$thisRGB]++;
                }
                else
                {
                     $colors[$thisRGB] = 1;
                }
            }
        }
Добавлено через 17 минут
хм, только что заметил, что сначала делится, а потом умножается на одно и то же число
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2021, 17:03
Ответы с готовыми решениями:

WCF+обработка исключений. Как это работает?
Привет. Не могу получить детали исключения на клиентской стороне. Сервис возбуждает исключение слкдующим образом. public...

не понимаю как это работает, выполнение PHP как бы в строке, например:
переменная = переменная ? переменная : (переменная &gt; переменная ? переменная : переменная : ''); там еще штмл подмешан как...

PHP + MySQL + AS3 - Просвитите по веб разработке, как это работает?
Apache - Сервер для передачи страницы пользователю MySQL - База данных PHP - обработка запросов, действий пользователя Action Script...

5
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,477
Записей в блоге: 2
27.03.2021, 18:28
Цитата Сообщение от skapunker Посмотреть сообщение
делится, а потом умножается на одно и то же число
оно работает ,) может только лишнее round
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
 cat <<\x | /c/srv/usr/php74/php
<?php
  foreach (range(228,255) AS $i)
      echo $i, ' ', round($i/0x33)*0x33 , "\n";
x
228 204
229 204
230 255
231 255
232 255
...
254 255
255 255
на выходе 0-255
Если уменьщать это 0x33===51, то диапазон может и не быть таким
или по другому, например
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
  foreach (range(247,255) AS $i) echo $i, ' ', ($i>>2)<<2 , "\n";
x
247 244
248 248
249 248
250 248
251 248
252 252
253 252
254 252
255 252
то будет только 0-252

Добавлено через 14 минут
Цитата Сообщение от x_lab Посмотреть сообщение
лишнее round
не лишнее если 25.5
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ cat <<\x | /c/srv/usr/php74/php
<?php
 
  foreach (range(240,255) AS $i) echo $i, ' ', round(round($i/25.5)*25.5) , "\n";
x
240 230
241 230
242 230
243 255
244 255
245 255
246 255
247 255
248 255
249 255
250 255
251 255
252 255
253 255
254 255
255 255
0
 Аватар для skapunker
-30 / 25 / 12
Регистрация: 13.12.2013
Сообщений: 1,459
27.03.2021, 18:33  [ТС]
Цитата Сообщение от x_lab Посмотреть сообщение
не лишнее если 25.5
то есть не обязательно делить на шестнадеричное 0x33?
можно и десятичное поставить 25.5? тогда цветов больше станет?
0
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,477
Записей в блоге: 2
27.03.2021, 18:46
Цитата Сообщение от skapunker Посмотреть сообщение
цветов больше
с 25.5 шаг около 25 вроде
51 был что-то около 50

сам не могу скубатурить ) опыт показывает что
к 0 приводится 13 значений
дальше примерно по 25
к 255 - 13
0
 Аватар для skapunker
-30 / 25 / 12
Регистрация: 13.12.2013
Сообщений: 1,459
27.03.2021, 18:48  [ТС]
Цитата Сообщение от x_lab Посмотреть сообщение
дальше примерно по 25
к 255 - 13
а как сделать, чтобы цвет не мог быть чисто белым, и не мог быть чисто черным?
чтобы процентов на 10% от этих значений держаться подальше
0
Невнимательный
 Аватар для ft4l
3107 / 1279 / 358
Регистрация: 08.02.2013
Сообщений: 7,477
Записей в блоге: 2
27.03.2021, 19:11
Точнее
Code
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
zzz@zz MINGW32 ~
$ cat <<\x | /c/srv/usr/php74/php
<?php
 
  $arr = range(0,255);
  array_walk($arr, function(&$v){$v = (int) round(round($v/25.5)*25.5);});
  var_export(array_count_values($arr));
x
array (
  0 => 13,
  26 => 26,
  51 => 25,
  77 => 26,
  102 => 25,
  128 => 26,
  153 => 25,
  179 => 26,
  204 => 25,
  230 => 26,
  255 => 13,
)
zzz@zz MINGW32 ~
$ cat <<\x | /c/srv/usr/php74/php
<?php
 
  $arr = range(0,255);
  array_walk($arr, function(&$v){$v = (int) round(round($v/51)*51);});
  var_export(array_count_values($arr));
x
array (
  0 => 26,
  51 => 51,
  102 => 51,
  153 => 51,
  204 => 51,
  255 => 26,
)
Добавлено через 3 минуты
Цитата Сообщение от skapunker Посмотреть сообщение
чтобы цвет не мог быть чисто белым
надо знать примерно сколько значений надо сделать из 226

Добавлено через 11 минут
Наверно многовато
PHP
1
2
3
  $arr = range(0,255);
  array_walk($arr, function(&$v){$v = ($v>>3)<<3|4;});
  var_export(array_count_values($arr));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2021, 19:11
Помогаю со студенческими работами здесь

Не могу понять, что это за реализация ORM и как это работает
Есть проект на C#, есть база данных MSSQL, есть код, который позволяет мне добавлять и удалять данные из базы данных (без создания и...

Не работает PHP в файлах HTML и не получается это починить
Добрый день! Встала необходимость сделать что бы php скрипты работали в HTML. Операционная система Windows 7. Я ставил Zend Server,...

Есть н цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит пользователь
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит...

Как это работает? Я хочу спросить как работает C++ и где можно про него почитать
Привет, котоны. Заранее благодарю. Это будет моих общих вопросов нить, т.к. создавать целую ветку для каждого нецелесообразно. Я хочу...

Что это и как это работает
Для чего указываются эти параметры в этих тегах? И как они работают? За подробное описание большое спасибо!!!


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru