„Spójrzmy prawdzie w oczy, wyrównane obrazy są jak małe prezenty z Nieba. Witamy, ale nieoczekiwanie.” - Geobity
+10000 reputacji dla każdego, kto wygra to wyzwanie.
Zasady:
1) Masz wygenerować program.
2) Dane wejściowe będą obrazem, jednak niezależnie od tego, czy zostanie przesłany jako plik, czy lista numerów, zależy od Ciebie.
3) Wyjście będzie plikiem, który po otwarciu w farbie (lub podobnym) pokaże wyrównany obraz.
4) Rozmiar płótna zawsze będzie wynosił od 100 x 100 do 2000 x 2000 pikseli. Zawsze będzie to prostokąt, ale nie zawsze kwadrat.
5) Brak twardego kodowania obrazów lub funky magii URL.
6) Żadnych zewnętrznych bibliotek do użycia.
Przewodnik po centralizacji (wariant Joshpbarron)
Obraz zostanie zdefiniowany jako wyśrodkowany, jeśli 1. biały (255,255,255,> 0 rgba) lub przezroczysty (x, y, z, 0 rgba) na osi jest równej odległości (plus lub minus 1 piksel) od krawędzi obszaru roboczego.
Można to osiągnąć (i zostanie to zweryfikowane) następującą metodą.
1) Wyobraź sobie obwiednię wokół obiektu. (Dodano czarne linie w celu uzyskania pomocy)
2) Przesuwaj obiekt dookoła, aż krawędź obiektu znajdzie się w równej odległości od odpowiedniej krawędzi płótna.
3) Teraz zapomnij o czarnych liniach.
Wejście:
Wynik:
Więcej informacji tutaj .
I odpowiednie wyniki tutaj .
+10000 powtórzeń to kłamstwo.
źródło
Odpowiedzi:
Python 3,
120205 bajtówEDYCJA : Ponieważ obraz wyjściowy musi mieć taki sam rozmiar jak wejście, skrypt staje się dłuższy ...
EDIT2 : Wygląda na to, że reguła 6 (brak biblioteki zewnętrznej) została dodana po tym, jak odpowiedziałem, więc i tak odpowiedź należy uznać za nieważną :(
Poprzednia wersja właśnie przycięła obraz wejściowy:
oba skrypty odczytują nazwę pliku obrazu ze standardowego wejścia i zapisują obraz wyjściowy jako „o.png”. na przykład :
Akceptuje co najmniej obrazy PNG (potencjalnie z kanałem alfa) - Testowane „ok” na zestawie dostarczonym przez pytającego.
... czekam na moją nagrodę):
źródło
python3 script.py <<< s2rMqYo.png
jest czystszaHTML5 + JavaScript (ES5), 515 bajtów
Liczba ta obejmuje tagi HTML, ponieważ są one częścią programu. Jeśli policzysz tylko kod przetwarzania obrazu, jest on 376 bajtów łącznie z opakowaniem funkcji.
Wejście
Adres URL obrazu.
Ograniczenia bezpieczeństwa
Ponieważ ten program działa w środowisku przeglądarki, będą działać tylko adresy URL obrazów obsługujących CORS . Imgur ma włączoną obsługę CORS.
IE 10 nie obsługuje CORS. Nie testowałem jeszcze w IE 11, ale działa w Chrome i Firefox.
Jak biegać
Wynik
Wyprowadza na kanwie na stronie.
Ponieważ jest to aplikacja oparta na przeglądarce, ograniczenia bezpieczeństwa uniemożliwiają automatyczne pobieranie pliku, ale możesz kliknąć prawym przyciskiem myszy i zapisać obraz w Chrome i Firefox. Nie testowałem jeszcze na IE 11.
Próbny
Kod JavaScript został usunięty z
script
elementu i umieszczony w odpowiednim obszarze, aby pomieścić fragmenty stosu:źródło
Przetwarzanie 2 -
323450Obraz jest odczytywany z pliku f.png w folderze danych szkicu. Umieszcza obraz i określa jego granice. Oblicza prawidłową pozycję i zastępuje poprawnie przesunięty obraz.
czytelna wersja:
Przykładowe dane wyjściowe:
Możesz uzyskać przetwarzanie tutaj
źródło
PImage p=loadImage("h.png");
na samej górze.color(-1)
orazbackground(-1)
każdy bajt krócej niż 1color(255)
ibackground(255)
odpowiednio. I myślę, że można usunąćP2D
wsize
zaproszeniu