Будучи великим шанувальником кубика Рубіка та класного мистецтва, я працював над поєднанням двох разом, щоб зробити якісь справді класні речі. В основному вирішення мініатюрних кубиків Рубіка для формування рудиментарних пікселів при формуванні кубичного мистецтва Рубіка. Приклади такого мистецтва можна побачити за цим посиланням: http://google.com/search?q=rubik%27s+cube+art
Тепер метою цього Code Golf є створення коду, який приймає зображення як вхідний, а потім перетворює його таким чином:
Зображення спочатку зводиться до безпечних для веб-кольорів кольорів сірого. Причина цього полягає в тому, що нам потрібно виділити безпечну для веб-палітри сіру шкалу (тобто 000000, 333333, 666666, 999999, CCCCCC та FFFFFF). Алгоритм колориметричного методу перетворення в масштаб сірого розміщений на веб-сайті: http://en.wikipedia.org/wiki/Grayscale#Colorimetric_.28luminance-preserving.29_conversion_to_grayscale , якщо ви бажаєте використовувати це як натхнення.
Тоді можна було б віддати кольори сірого до відповідних кольорів. Щоб швидко її розбити: 000000 буде посилатися на синій Рубік, 333333 - на червоний Рубік, 666666 - на зелений Рубік, 999999 - на помаранчевий Рубік, CCCCCC - на жовтий, а FFFFFF - на білий.
Я вважаю за краще, щоб ваш отриманий код міг переходити з палітри фотографій прямо в кольори Рубіка. Двоступеневий метод перетворення на безпечний веб-масштаб, а потім до відповідної палітри Рубіка - це просто дати вам уявлення про логіку процесу, але якщо вам це простіше зробити, то це неодмінно зробіть.
Фактичні значення RGB для палітри Rubik повинні відповідати наступним:
- Червоний: # C41E3A
- Зелений: # 009E60
- Синій: # 0051BA
- Помаранчевий: # FF5800
- Жовтий: # FFD500
- Білий: #FFFFFF
Щоб навести вам приклад, я вирізав голову Авраама Лінкольна з наступного малюнка: і створив алгоритм для створення наступного:
Сітка існує там, щоб ви могли бачити, як кожен окремий мініатюрний куб Рубіка повинен був бути налаштований для складання зображення. Справжній розмір отриманого зображення становить 45 пікселів на 45 пікселів, тобто (45/3) * (45/3) = 15 * 15 = 225 мініатюрних кубиків Рубіка будуть використані для створення цього зображення. Я не чекаю, що ви представите отримане зображення сіткою, як у мене.
Отже, ось що потрібно:
Зображення, яке обробляється за допомогою цього алгоритму, повинно бути x пікселів шириною на y пікселів, таким чином, щоб x і y було кратним 3. Це допоможе з легкістю візуалізації як частини мозаїки кубика Рубіка. Якщо ваше зображення досить велике, рекомендується зменшити його до розмірів приблизно 45 x 45 до 75 x 75 або в наступних розмірах перед обробкою. Майте на увазі, що цей розмір компонента є ДОДАТОК.
Зображення потрібно перетворити на кольорову палітру кубів Рубіка, щоб створити мозаїку.
Отримане зображення після обробки має бути дійсним графічним файлом. Щоб довести, що ваш код працює, заведіть його на зображення одного з президентів Сполучених Штатів Америки або відомої голлівудської знаменитості. Я вже використав Авраама Лінкольна в своєму прикладі, тому цього президента вже не можна використовувати. Переконайтесь, що ви надаєте мову, якою ви користувалися, кількість байтів, а також президент / знаменитість, які використовувались для тестування вашого коду, включаючи кадри до і після,
Кожен запис повинен мати унікального президента / знаменитості як їх тестовий випадок. Я не буду приймати дублікати. Це забезпечить дублювання результатів, які не використовуються для тестування різних записів коду. Все гаразд сказати, що ваш код працює, це інша річ довести це.
5. Виграє найкоротший код.
Я змінюю це на конкурс популярності ... Я скоріше бачу, хто може це зробити, не змагаючись за кількість байтів ... Тож я присуджую це разом із щедрою нагородою після 28 лютого 2014 року.
#000000 => #0051BA
, тощо