Dla tego projektu nad którym pracuję, mam 2 zdjęcia. Te dwa zdjęcia należy zszyć razem, jeden na górze i jeden na dole, a następnie będzie można zobaczyć cały obraz. Jakieś pomysły na temat modułu, który powinienem użyć, aby to zrobić?Łączenie zdjęć razem
Odpowiedz
Ten posiłek zjemy na śniadanie.
Zobacz artykuł tutorial, w szczególności sekcja "Przycinanie, wklejanie i scalanie obrazów", aby uzyskać pomoc.
Na ogólnym zarysie, załadować zarówno obrazy z Image.open
, dowiedzieć się, jak duży obraz wyjściowy będzie za pomocą atrybutu size
i jakiś dodatek, tworzenie obrazu wyjściowego z Image.new
a następnie użyć metody paste
do przeszłości dwóch oryginalnych obrazów w.
Czy mógłbyś trochę o tym powiedzieć? Jakie funkcje chciałbym użyć? Jakieś wskazówki? –
Dodałem kilka wskazówek do odpowiedzi. Normalnie napisałbym program demo, ale to był długi tydzień i kusi świetny napój alkoholowy ;-) –
Świetnie! To było idealne. Dzięki za pomoc –
To jest kod z wizji komputerowej Jana Eryka Solema z książką Pythona; prawdopodobnie można go zmienić, by zmieścić się góra/dół musi
def stitchImages(im1,im2):
'''Takes 2 PIL Images and returns a new image that
appends the two images side-by-side. '''
# select the image with the fewest rows and fill in enough empty rows
rows1 = im1.shape[0]
rows2 = im2.shape[0]
if rows1 < rows2:
im1 = concatenate((im1,zeros((rows2-rows1,im1.shape[1]))), axis=0)
elif rows1 > rows2:
im2 = concatenate((im2,zeros((rows1-rows2,im2.shape[1]))), axis=0)
# if none of these cases they are equal, no filling needed.
return concatenate((im1,im2), axis=1)
Oto przykładowy kod korzystania Pillow. Mam nadzieję, że to komuś pomaga!
from PIL import Image
def merge_images(file1, file2):
"""Merge two images into one, displayed side by side
:param file1: path to first image file
:param file2: path to second image file
:return: the merged Image object
"""
image1 = Image.open(file1)
image2 = Image.open(file2)
(width1, height1) = image1.size
(width2, height2) = image2.size
result_width = width1 + width2
result_height = max(height1, height2)
result = Image.new('RGB', (result_width, result_height))
result.paste(im=image1, box=(0, 0))
result.paste(im=image2, box=(width1, 0))
return result
- 1. Łączenie dwóch list razem
- 2. Łączenie pasków przewijania na sąsiednich listach razem
- 3. Java Generics: łączenie razem obiektu funkcji ogólnej
- 4. Android: Łączenie wielu plików razem w jeden plik
- 5. Łączenie wiosenne Łączenie
- 6. Awaria aplikacji podczas próby pobrania zdjęć z biblioteki zdjęć za pomocą selektora zdjęć
- 7. Interfejs API Tumblr - jak przesłać wiele zdjęć do zestawu zdjęć
- 8. FQL uzyskania zdjęć ze zdjęć profilowych nagle przestał działać
- 9. Najlepsza aplikacja do zdjęć Django do sprzedaży zdjęć online
- 10. Osiągnij płynne przewijanie siatki zdjęć dzięki tysiącom zdjęć z dysku
- 11. Stacking zdjęć astronomia Pythona
- 12. Tworzenie wideo ze zdjęć
- 13. nakładek kilka zdjęć
- 14. Wstępne ładowanie zdjęć
- 15. Pokazywanie zdjęć zabrakło pamięci
- 16. Dostosowany widok wyboru zdjęć
- 17. Dodawanie zdjęć do UITextView
- 18. Porównanie zdjęć jquery
- 19. Feemarker zdjęć pisania HTML
- 20. Dodawanie zdjęć w JSfiddle
- 21. Galeria zdjęć JQuery Ajax
- 22. Pobieranie zdjęć ze złomowaniem
- 23. OpenCV dopasowanie zdjęć
- 24. Lokalizacja Moich zdjęć
- 25. Galeria zdjęć iPhone'a
- 26. SDWebImage zdjęć chętny obciążenia
- 27. Prosta galeria zdjęć klejnot
- 28. używając git do zdjęć
- 29. Jak wyświetlić wiele zdjęć na jednej figurze?
- 30. Jak dodawać numery zdjęć do Dokumentów Google?
Czy zachodzą na siebie jak panorama? A może potrzebujesz jednego większego obrazu, umieszczając dwa mniejsze obok siebie? – Leopd