Problem:
To wyzwanie wynika z prawdziwego problemu, który miałem. Mam konfigurację z dwoma monitorami w pracy i chciałem użyć następującego obrazu jako tapety:
Jednak moje monitory mają dość znaczące ramki, a kiedy ustawiam tło, wygląda to mniej więcej tak, że molo (appier?) Jest zepsute:
Udało mi się to rozwiązać, wykonując obraz z wyciętym środkiem, a następnie rozciągając go z powrotem do oryginalnego rozmiaru, jak na poniższym obrazku:
Wyzwanie:
Napisz program, który pobiera obraz i „monitoruje” go w celu użycia z konfiguracją z dwoma monitorami (tj. Usuwa środkową część obrazu, gdzie znajdują się ramki). Reguły są następujące:
- Musi to być pełny program, który akceptuje obraz jako ścieżkę (argument ciągu itp.) Lub w formie okna dialogowego wyboru plików.
- Program musi przyjąć jako dane wejściowe liczbę pionowych linii (o szerokości jednego piksela), aby wykadrować je ze środka obrazu
- Kadrowanie musi pochodzić ze środka (szerokości) oryginalnego obrazu
- Powstały obraz musi zostać ponownie przeskalowany do oryginalnego rozmiaru obrazu wejściowego. (Połówki można skalować indywidualnie, a następnie konkatenować lub konkatenować, a następnie skalować. Skalowanie indywidualnie daje lepszy obraz / efekt, ale w rzeczywistości nie jest zauważalne)
- Obrazy tła są na ogół równe, więc aby ułatwić to wyzwanie, obrazy wejściowe będą miały tylko parzystą liczbę pikseli, a liczba linii do usunięcia będzie równa.
- Wyzwaniem jest kod golfowy - wygrywa najkrótszy kod w bajtach
Powodzenia!