เทคนิคและความสามารถของ imagemagick การภาพ Gifs จากภาษา python
เทคนิคและความสามารถของ imagemagick การภาพ Gifs จากภาษา python การสร้างภาพเคลื่อนไหว GIF นั้นต้องใช้โปรแกรมติดต่อมากมาย ดังนั้นผมก็จะมาสอนการตัด GIF จาก Video ง่าย ด้วยโมดูลสำเร็จรูป
1. ขั้นตอนการทำภาพ GIF
เรานำเข้า MoviePy เราจะเปิดไฟล์วิดีโอเราจะเลือกส่วนที่อยู่ระหว่าง 0,59.10 (0 นาที 59.10 วินาที) และบันทึกเป็นไฟล์ GIF
from moviepy.editor import *
clip = (VideoFileClip("SampleVideo.mp4")
.subclip((0, 59.10), (1, 0.40))
.resize(0.3))
clip.write_gif("imgtest/ex1.gif")
สามารถดาวน์โหลด source code EX1 ได้ที่นี้ Download
2. ขั้นตอนการตัดขนาดภาพ
เป็นคำสั่ง Crop หรือ การตัด ใช้ในการสิ่งที่ต้องการเฉพาะเจาะจง คพสั่ง Crop()
from moviepy.editor import *
clip = (VideoFileClip("SampleVideo.mp4")
.subclip((0, 5.10), (0, 5.30))
.resize(0.3)
.crop(x1=50,x2=200))
clip.write_gif("imgtest/ex2.gif")
สามารถดาวน์โหลด source code EX2 ได้ที่นี้ Download
3. ขั้นตอนการทำให้เคลื่อนไหวบางส่วน
ภาพGif จะเคลื่อนไหวบางสอนโดย ใช้การหยูดภาพ ตัวอย่าง GIF จะหยุดส่วนซ้าย
anna_olaf = (VideoFileClip("SampleVideo.mp4")
.subclip(113.10, 114.10)
.speedx(0.4)
.resize(.4))
snapshot = (anna_olaf
.crop(x2= anna_olaf .w/1.7)
.to_ImageClip(0.2)
.set_duration(anna_olaf.duration))
composition = CompositeVideoClip([anna_olaf, snapshot])
composition.write_gif('imgtest/ex3.gif', fps=15)
สามารถดาวน์โหลด source code EX3 ได้ที่นี้ Download
4. ขั้นตอนการทำภาพเคลื่อนไหวแบบมีการ return ภาพกลับ ทำภาพสมูท
สังเกตภาพว่า การเล่นของภาพมันต่อเนื่องงันตลอด
# -*- coding: utf-8 -*-
from moviepy.editor import *
def time_symetrize(clip):
return concatenate([clip, clip.fx( vfx.time_mirror )])
clip = (VideoFileClip("SampleVideo.mp4")
.subclip((2, 7.40), (2, 8.10))
.resize(0.3)
.fx(time_symetrize))
clip.write_gif('imgtest/ex4.gif',fps=15, fuzz=2)
สามารถดาวน์โหลด source code EX4 ได้ที่นี้ Download
5. ขั้นตอนการทำภาพเคลื่อนไหวแบบลูป
เช่น การทำภาพพื้นหลัง, การทำฝนตก ภาพจะเล่นสมูทโดยที่หาจุดจบไม่ได้
# -*- coding: utf-8 -*-
from moviepy.editor import *
def time_symetrize(clip):
return concatenate([clip, clip.fx( vfx.time_mirror )])
castle = (VideoFileClip("SampleVideo.mp4", audio=False)
.subclip(25.8,26.2)
.speedx(0.2)
.resize(.4))
d = castle.duration
castle = castle.crossfadein(d/2)
composition = (CompositeVideoClip([castle,
castle.set_start(d/2),
castle.set_start(d)])
.subclip(d/2, 3*d/2))
composition.write_gif('imgtest/ex5.gif', fps=5,fuzz=5)
สามารถดาวน์โหลด source code EX5 ได้ที่นี้ Download
- หัวเรื่อง
- ความสามารถของ imagemagick
- หมวดหมู่
- Python for work, Python for work
- ฮิต
- 31112
- ผู้สร้างเอกสาร
- ae
- วันที่สร้างเอกสาร
- 2017-06-28 16:17:48