HI, jest możliwe, że stworzyłem obraz z matplotlib i zapisuję go na obiekcie obrazu, który utworzyłem z PIL? Brzmi bardzo ciężko? Kto może mi pomóc?Python zapisać matplotlib rysunek na PIL Image object
8
A
Odpowiedz
14
Renderowanie obrazów matplotlib na stronie internetowej w Framework Django:
tworzyć fabułę matplotlib
zapisać go jako plik png
sklep ten obraz w buforze smyczkową (używając PIL)
Przekaż ten bufor do Django za HttpResponse (zestaw typu MIME/obraz PNG)
która zwraca się obiekt reakcji (renderowany wykresu w tym przypadku).
Innymi słowy, wszystkie te kroki powinny być umieszczone w Django widok funkcji w views.py:
from matplotlib import pyplot as PLT
import numpy as NP
import StringIO
import PIL
from django.http import HttpResponse
def display_image(request) :
# next 5 lines just create a matplotlib plot
t = NP.arange(-1., 1., 100)
s = NP.sin(NP.pi*x)
fig = PLT.figure()
ax1 = fig.add_subplot(111)
ax1.plot(t, s, 'b.')
buffer = StringIO.StringIO()
canvas = PLT.get_current_fig_manager().canvas
canvas.draw()
pil_image = PIL.Image.fromstring('RGB', canvas.get_width_height(),
canvas.tostring_rgb())
pil_image.save(buffer, 'PNG')
PLT.close()
# Django's HttpResponse reads the buffer and extracts the image
return HttpResponse(buffer.getvalue(), mimetype='image/png')
2
Miałem to samo pytanie i natknąłem się na tę odpowiedź. Po prostu chciałem dodać do powyższej odpowiedzi, że PIL.Image.fromstring
został wycofany, a odbytes powinien być teraz użyty zamiast zstring. Stąd powinniśmy zmodyfikować wiersz:
pil_image = PIL.Image.fromstring('RGB', canvas.get_width_height(),
canvas.tostring_rgb())
do
pil_image = PIL.Image.frombytes('RGB', canvas.get_width_height(),
canvas.tostring_rgb())
Powiązane problemy
- 1. Ukryj/niewidoczne Matplotlib rysunek
- 2. Jak mogę zapisać obraz z PIL?
- 3. Python PIL Jakość JPEG
- 4. Python, PIL; Tekst na obraz i czcionki
- 5. Jak przekonwertować plik PIL `Image` na plik Django` File`?
- 6. ImportError: brak modułu o nazwie Image, ImportError: brak modułu o nazwie PIL - Python, Anaconda, PIL, poduszka, mac 10.10.3,
- 7. pixelwise rysunek w pyglecie (python)
- 8. Python, narysuj okrąg z PIL
- 9. Dodawanie tekstu na obrazie w python za pomocą imagemagik/PIL
- 10. "IOError: dekoder zip niedostępne": Ubuntu Python PIL
- 11. Python image library (PIL), jak skompresować obraz do pożądanego rozmiaru pliku?
- 12. Nie można zapisać matplotlib.figure rysunek, płótno jest Brak
- 13. Python PIL: Jak narysować elipsę pośrodku obrazu?
- 14. Python threadsafe object cache
- 15. Python Object Property Sharing
- 16. PIL nie zapisuje przejrzystość
- 17. wspólny rysunek/rysowanie na żywo
- 18. ImportError: Nie można zaimportować biblioteki obrazowania Python (PIL) wymaganej do załadowania plików obrazów na tensorflow
- 19. Tworzenie etykiet gdzie pojawia się linia w matplotlib rysunek
- 20. Aplikacja na Androida - jak zapisać rysunek bitmapowy na płótnie jako obraz? Sprawdź kod?
- 21. Instalowanie biblioteki obrazowania Pythona (PIL) na Ubuntu
- 22. Najlepsze podejście do konkretnego zadania Object/Image Recognition?
- 23. Python PIL: IOError: nie można zidentyfikować plik obrazu
- 24. PIL: Konwertuj Bytearray na obraz
- 25. Zmiana obrazu <img /> z JavaScript Image object
- 26. javascript [object Object] na ciąg
- 27. Rysunek Matplotlib zmienia się do publikacji po zrobieniu rysunku
- 28. Python Windows 7 screenshot bez PIL
- 29. Python Matplotlib prostokątne binning
- 30. Python PIL nie może zlokalizować mojego "libjpeg"