2012-03-09 10 views
16

Proszę rozważyć następujący przykład:Używanie imagemagick w jaki sposób mogę podzielić obraz na kilka oddzielnych obrazów?

enter image description here

Obraz źródłowy składa się z 6 obszarów, które muszą być pokrojony na 6 oddzielnych obrazów.

Jak uzyskać żądany wynik za pomocą imagemagick. Próbowałem zrozumieć możliwe rozwiązanie przedstawione w imagemagick examples, ale nie udało mi się przenieść go do mojego konkretnego problemu.

Jaki byłby sposób rozwiązania tego problemu, najlepiej w jednym liniowcu? Ponieważ wszystkie obszary, które mają być wycinane, mają ten sam rozmiar, ale różnią się tylko ich przesunięciem, czy istnieje sposób, aby przekazać wstępnie ustawiony rozmiar obszaru, a następnie po prostu dodać przesunięcie xy dla każdego obszaru?

+0

Jak różnią offset? Arbitralnie umieszczony? Siatka zaczynająca się od początku? Zasadniczo, w jaki sposób przesunięcia obszarów odnoszą się do siebie? – Sorpigal

Odpowiedz

23

Jeśli każdy obszar ma taką samą wielkość wypełnienia wokół niego, można użyć the @ operator.

Zmniejsza to obraz na 6 sekcji, 2 w rzędzie, z 40 pikseli poziomego wypełniania i 20 pikseli pionowo wyściółki wykluczonych z każdej sekcji:

convert image.png -crop [email protected] +repage +adjoin tile-%d.jpg 
+0

Czy mogę to zrobić, ale zaczynając od '% d' = 1? – theonlygusti

Powiązane problemy