ΠΡΠΈΠ²Π΅Ρ,
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ°ΠΉΠ» Π² ΡΠΎΡΠΌΠ°ΡΠ΅ GIF ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ? Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΏΡΡΠΈ, Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠΎ, ΡΡΠΎ Ρ Ρ ΠΎΡΡ
HTML
def display_gif(fn):
from IPython import display
return display.HTML('<img src="{}">'.format(fn))
ΠΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠ΅ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΡΠ»ΠΈ Ρ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π°, Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
.gif
Π² .png
Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ display.Image(fn)
.ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ.
ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π½Π°Π΅Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈ URL-Π°Π΄ΡΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ
Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
Ρ Π³ΠΈΡΠΊΠ°ΠΌΠΈ? ΠΠΎΠΆΠ΅Ρ, Π½Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² IPython.display.Image._ACCEPTABLE_EMBEDDINGS
.
URI Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ gif ΠΈΠ»ΠΈ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΈΠΏΠΎΠΌ MIME, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ:
'<img src="data:image/gif;base64,{0}"/>'.format(base64.b64encode(gif))
ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
from IPython.display import HTML
HTML('<img src="../giphy.gif">')
Image(filename=*)
ΠΈΠ»ΠΈ Image(url=*)
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ png
ΠΊ ΡΠ°ΠΉΠ»Ρ GIFfrom IPython.display import Image
Image(filename="../giphy.gif.png")
Image(data=*)
with open('../giphy.gif','rb') as f:
display(Image(data=f.read(), format='png'))
Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Image(filename=*)
ΠΈΠ»ΠΈ Image(url=*)
Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ format="gif"
. ΠΡΡΡ Π»ΠΈ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ GIF Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ? ΠΡΠ»ΠΈ Π½Π΅Ρ, Ρ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΠΌΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ π
ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΈΡ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ HTML
, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ:
from IPython.display import display, HTML
HTML('''<div style="display: flex; justify-content: row;">
<img src="../giphy.gif">
<img src="../giphy.gif">
<img src="../giphy.gif">
</div>''')
Π Π·Π°ΠΏΠΈΡΠ½ΡΡ ΠΊΠ½ΠΈΠΆΠΊΠ°Ρ Colab ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
https://github.com/ipython/ipython/issues/10045#issuecomment -318202267
Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Ρ ΠΏΠΎΠ²ΡΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² IPython, Jupyter ΠΈ CoLab:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
from IPython import display
ΠΠ°ΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΡΠ΅ΠΉΠΊΡ _ΠΏΠ΅ΡΠ΅Π΄_ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΡΠ΅ΠΉΠΊΠΈ Π½ΠΈΠΆΠ΅.
from pathlib import Path
gifPath = Path("/path/to/my.gif")
# Display GIF in Jupyter, CoLab, IPython
with open(gifPath,'rb') as f:
display.Image(data=f.read(), format='png')
Π Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ, Π²ΠΎΡ ΠΊΠ°ΠΊ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π³ΠΈΡΠΊΠΈ Π½Π° Python:
# Generate GIF
import imageio
from pathlib import Path
picsPath = Path("/path/to/pics/folder/")
images = []
for f in picsPath.glob("*.png"):
images.append(imageio.imread(f))
imageio.mimsave(picsPath / 'movie.gif', images)
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GIF Π² Jupyter Notebook, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΡΠ»ΠΊΡ: https://media.giphy.com/media/3oD3YveOJWdwIAfZ5e/giphy.gif
ΠΠ°ΡΠ΅ΠΌ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΡΠΈ Π±ΡΠΊΠ²Ρ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ ΠΏΠΎΠ΄ΡΡΠ΄ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΡΠ»ΠΊΡ http Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ: Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ
ΡΠΊΠΎΠ±ΠΊΠ°Ρ
.
![](https://media.giphy.com/media/3oD3YveOJWdwIAfZ5e/giphy.gif)
ΠΡΠ±ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π±ΡΠ΄Ρ ΡΠΎ png, jpg, jpeg ΠΈΠ»ΠΈ gif ΠΈ Ρ. Π., ΠΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π² Π±Π»ΠΎΠΊΠ½ΠΎΡΠ΅ python jupyter, ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ matplotlib.
"ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ matplotlib.pyplot ΠΊΠ°ΠΊ plt"
"ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» matplotlib.image ΠΊΠ°ΠΊ mpimg"
img = mpimg.imread ("/ home / gaurav / soft computing assignment / soft computing / river.gif")
plt.imshow (img)
Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Ρ ΠΏΠΎΠ²ΡΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² IPython, Jupyter ΠΈ CoLab:
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all" from IPython import display
ΠΠ°ΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΡΠ΅ΠΉΠΊΡ _ΠΏΠ΅ΡΠ΅Π΄_ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΡΠ΅ΠΉΠΊΠΈ Π½ΠΈΠΆΠ΅.
from pathlib import Path gifPath = Path("/path/to/my.gif") # Display GIF in Jupyter, CoLab, IPython with open(gifPath,'rb') as f: display.Image(data=f.read(), format='png')
Π Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ, Π²ΠΎΡ ΠΊΠ°ΠΊ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π³ΠΈΡΠΊΠΈ Π½Π° Python:
# Generate GIF import imageio from pathlib import Path picsPath = Path("/path/to/pics/folder/") images = [] for f in picsPath.glob("*.png"): images.append(imageio.imread(f)) imageio.mimsave(picsPath / 'movie.gif', images)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. ΠΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Colab?
Π’Π°ΠΊΠΆΠ΅ (Π΄Π»Ρ Π²ΡΠ΅Ρ ) Π΅ΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ gif Π² ΡΡΠ΅ΠΉΠΊΠ΅ Markdown Π² Colab, ΠΊΠΎΠ³Π΄Π° gif Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° Google ΠΠΈΡΠΊΠ΅?
Π₯ΠΎΡΠΎΡΠΎ, Π²ΠΎΡ ΠΌΠΎΡ Π·Π°ΡΠ²ΠΊΠ°, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΡΡΡΠ°: ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²ΡΡΠ΅, ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» HTML Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ GIF, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ base64, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (Π² Python 3.6+)
def show_gif(fname):
import base64
from IPython import display
with open(fname, 'rb') as fd:
b64 = base64.b64encode(fd.read()).decode('ascii')
return display.HTML(f'<img src="data:image/gif;base64,{b64}" />')
show_gif('pikachu.gif')
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
HTML
Image(filename=*)
ΠΈΠ»ΠΈImage(url=*)
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅png
ΠΊ ΡΠ°ΠΉΠ»Ρ GIFImage(data=*)
Π ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ
Image(filename=*)
ΠΈΠ»ΠΈImage(url=*)
Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡformat="gif"
. ΠΡΡΡ Π»ΠΈ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ GIF Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ? ΠΡΠ»ΠΈ Π½Π΅Ρ, Ρ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΠΌΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ π