Вы просто взяли бы это изображение и добавили бы каждый цвет по одному к каждой шестнадцатеричной цифре. Например, #49de5f
станет #5aef60
(с 9
циклом в a
и f
циклом в 0
.)
Это также означало бы, что все white ( #ffffff
) станут черными ( #000000
), потому что все f
циклы вернутся назад 0
, но весь черный станет более светлым оттенком черного ( #111111
).
Оценка основана на наименьшем количестве используемых байтов, так как это вопрос кода-гольфа .
Используйте приведенное ниже изображение в качестве входного изображения для своего кода и поместите выходное изображение своего кода в свой ответ.
Если вы хотите, вы также можете использовать это другое изображение радуги:
ef
байты (который должен статьf0
в отличие от того,00
что происходит, когда вы просто добавляете 17 и берете мод 256).Ответы:
Пайк,
1713 байтПопробуй это здесь!
Принимает ввод в виде целочисленного массива пикселей и выводит его в том же формате
источник
Mathematica, 78 байт
Принимает и возвращает объект изображения (чтобы создать объект изображения, просто вставьте изображение в Mathematica).
Результат для теста:
Принимая входные данные и возвращая выходные данные в виде трехмерного массива целочисленных значений канала, это уменьшает до 51 байта :
Но эти мета-посты пока не имеют подавляющего количества поддержки, поэтому сейчас я собираюсь использовать 78-байтовую версию.
источник
Verilog, 220 байт:
В настоящее время неясно, как должны быть предоставлены измерения, и должен ли массив передаваться или предоставляться одновременно. Я собираюсь передавать его по 8 бит за раз, используя тактовый сигнал (с флагом допустимых данных, который становится низким после обработки всего изображения), и вводить / выводить размеры в виде 32-битных целых чисел:
источник
Python, 226 байт
Теперь это действительно!
Используйте библиотеку подушек.
Выход:
Спасибо @TuukkaX за сохранение 9 байтов!
Спасибо @ mbomb007 за сохранение 18 байт!
источник
0xFF
вместо255
?0xFF
: Dfrom PIL import*
. Я также думаю, что этоImage.open
может быть изменено толькоopen
после этого.from PIL import*
, но я не могу изменитьImage.open
Дьялог АПЛ ,
2115 байтЯ предполагаю, что вывод может быть в том же формате.
Новое решение принимает матрицу значений [[ r , g , b , r , g , b ], [ r , g , b ,…
объяснение
⎕
получить числовой ввод16 16⊤
преобразовать в 2-значное основание 161+
добавить 1, то есть 0 → 1, 1 → 2, 15 → 1616|
модуль 16, т.е. 16 → 016⊥
преобразовать из базы 16пример
Старое 21-байтовое решение принимает матрицу [["RRGGBB", "RRGGBB"], ["RRGGBB",…
Необходимо
⎕IO←0
, что по умолчанию на многих системах.объяснение
{
…}¨
Для каждой 6-символьной строки RGB представьте ее как⍵
и сделайте:n←⎕D,⎕A
присвойте «0… 9A… Z» n, чтобы⍵⍳⍨
найти индексы отдельных символов в n,1+
добавить один в индекс, то есть 0 → 1, 1 → 2, 15 → 1616|
модуль 16, т.е. 16 → 0n[
...]
использовать это, чтобы индексировать в ппример
источник
C -
1141137066617267 байтВот код (с поддержкой тестового примера Мартина Эндера (без 60b)):
И вот менее запутанная версия:
Скомпилируйте и запустите
gcc -o color colorgolf.c && cat a.bmp | ./color > b.bmp
Этот код поддерживает работу с растровыми изображениями . Чтобы преобразовать
png
файлы вbmp
, я использовал следующую команду:convert -flatten -alpha off png.png a.bmp
Код предполагает, что
bmp
заголовок имеет длину 54 байта - в этом случае это работает, но я не уверен, что я что-то не нарушаю.Также это радуга:
источник
Java 142 байта
Golfed:
источник
i
как параметр, так и цикл for, поэтому я бы изменил этот параметр на что-то подобноеa
. Кроме того, вы можете сыграть в гольф еще, снявint
передj
и добавив его вint i
. Так вот такBufferedImage t(BufferedImage a){for(int i=-1,j;++i<a.getWidth();)for(j=-1;++j<a.getHeight();)a.setRGB(i,j,a.getRGB(i,j)+1118481);return a;}
. Также посмотрите этот пост: Советы по игре в гольф на Яве . :)R, 302 байта
Далеко не идеально, но здесь идет:
Объяснение:
источник