Będąc wielkim fanem kostki Rubika i fajnej sztuki, pracowałem nad połączeniem tych dwóch, aby zrobić naprawdę fajne rzeczy. Zasadniczo rozwiązywanie miniaturowych kostek Rubika w celu utworzenia podstawowych pikseli w tworzeniu kostki Rubika. Przykłady takich dzieł można zobaczyć pod tym linkiem: http://google.com/search?q=rubik%27s+cube+art
Teraz celem tego Code Golf jest utworzenie kodu, który akceptuje obraz jako dane wejściowe, a następnie konwertuje go w następujący sposób:
Obraz jest początkowo redukowany do bezpiecznych dla sieci kolorów w skali szarości. Powodem tego jest to, że musimy wyizolować bezpieczną dla palety internetowej skalę szarości (tj. 000000, 333333, 666666, 999999, CCCCCC i FFFFFF). Algorytm metody kolorymetrycznej konwersji na skalę szarości jest dostępny na stronie : http://en.wikipedia.org/wiki/Grayscale#Colorimetric_.28luminance-preserving.29_conversion_to_grayscale , jeśli chcesz użyć tego jako inspiracji.
Następnie renderowano skalę szarości na odpowiednie kolory. Aby szybko to rozbić: 000000 będzie odnosić się do niebieskiego Rubika, 333333 będzie odnosić się do czerwonego Rubika, 666666 będzie odnosić się do zielonego Rubika, 999999 będzie odnosić się do pomarańczowego Rubika, CCCCCC będzie odnosić się do żółtego Rubika, a FFFFFF będzie odnosić się do białego Rubika.
Wolę, aby Twój wynikowy kod mógł renderować z palety zdjęcia prosto do kolorów Rubika. Dwustopniowa metoda przejścia z bezpiecznej dla sieci skali szarości, a następnie do odpowiedniej palety Rubika, ma na celu przedstawienie logiki procesu, ale jeśli jest to łatwiejsze, zrób to.
Rzeczywiste wartości RGB dla palety Rubika muszą odpowiadać następującym:
- Czerwony: # C41E3A
- Zielony: # 009E60
- Niebieski: # 0051BA
- Pomarańczowy: # FF5800
- Żółty: # FFD500
- Biały: #FFFFFF
Aby dać wam przykład, przyciąłem głowę Abrahama Lincolna z poniższego obrazu: i przetworzyłem algorytm, aby uzyskać następujące:
Siatka jest tam, abyś mógł zobaczyć, w jaki sposób każda indywidualna miniaturowa kostka Rubika musiałaby zostać skonfigurowana do utworzenia obrazu. Rzeczywisty rozmiar uzyskanego obrazu wynosi 45 na 45 pikseli, co oznacza (45/3) * (45/3) = 15 * 15 = 225 miniaturowe kostki Rubika zostaną użyte do stworzenia tego obrazu. Nie oczekuję, że przedstawisz wynikowy obraz z siatką, tak jak ja.
Oto, co jest wymagane:
Obraz przetwarzany przez ten algorytm musi mieć szerokość x pikseli na wysokość y pikseli, tak aby xiy były wielokrotnościami 3. Ma to na celu ułatwienie renderowania jako części mozaiki kostki Rubika. Jeśli obraz jest dość duży, zaleca się zmniejszenie go do około 45 x 45 do 75 x 75 lub mniej więcej przed przetworzeniem. Pamiętaj, że ten element zmiany rozmiaru jest OPCJONALNY.
Aby utworzyć mozaikę, obraz należy przekonwertować na paletę sześcianów Rubika o seksownym kolorze.
Powstały obraz musi być poprawnym plikiem graficznym po przetworzeniu. Aby udowodnić, że Twój kod działa, uruchom go na obrazie jednego z prezydentów Stanów Zjednoczonych Ameryki lub znanej gwiazdy Hollywood. Użyłem już Abrahama Lincolna w moim przykładzie, więc nie można już używać tego prezydenta. Upewnij się, że podajesz używany język, liczbę bajtów, a także prezydenta / celebryty użytej do przetestowania kodu, w tym przed i po ujęciach ...
Każdy wpis musi mieć unikalnego prezydenta / celebrytę jako swój testowy przypadek. Nie przyjmę duplikatów. Zapewni to, że duplikaty wyników nie będą używane do testowania różnych wpisów kodu. Bardzo dobrze jest powiedzieć, że twój kod działa, to kolejna rzecz, aby to udowodnić.
5. Najkrótszy kod wygrywa.
Zmieniam to na konkurs popularności ... Wolałbym zobaczyć, kto może to zrobić bez konkurowania pod względem liczby bajtów ... Więc nagrodzę to nagrodą po 28 lutego 2014 roku.
#000000 => #0051BA
itp.