เทคนิคและความสามารถของ 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

ขั้นตอนการทำภาพ GIF
ขั้นตอนการทำภาพ GIF

 

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

ขั้นตอนการทำภาพเคลื่อนไหวแบบมีการ return ภาพกลับ ทำภาพสมูท
ขั้นตอนการทำภาพเคลื่อนไหวแบบมีการ return ภาพกลับ ทำภาพสมูท

 

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
ฮิต
31098
ผู้สร้างเอกสาร
ae
วันที่สร้างเอกสาร
2017-06-28 16:17:48

imgemagick.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 1.76 KB

ผู้อัพโหลดไฟล์ ae

วันที่อัพโหลด 2017-06-28 09:17:46


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
โดย witsarutt000 พฤ 14 มี.ค. 2024 4:07 pm บอร์ด SQL Knowledge
1
166
พฤ 14 มี.ค. 2024 5:44 pm โดย Sirayu View Topic SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
โดย witsarutt000 พฤ 14 มี.ค. 2024 11:17 am บอร์ด PHP Knowledge
0
125
พฤ 14 มี.ค. 2024 11:17 am โดย witsarutt000 View Topic PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
โดย Thanavat_n พ 13 มี.ค. 2024 11:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
270
พ 13 มี.ค. 2024 1:34 pm โดย Thanavat_n View Topic ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
โดย @Foretoday อ 12 มี.ค. 2024 1:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
184
อ 12 มี.ค. 2024 1:46 pm โดย @Foretoday View Topic ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
โดย witsarutt000 จ 11 มี.ค. 2024 6:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
142
จ 11 มี.ค. 2024 6:14 pm โดย witsarutt000 View Topic แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
โดย mindphp อ 10 มี.ค. 2024 4:36 am บอร์ด Linux - Web Server
0
239
อ 10 มี.ค. 2024 4:36 am โดย mindphp View Topic ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
IP และ vpn (VMware)
โดย ballmykids อ 10 มี.ค. 2024 2:35 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
203
จ 11 มี.ค. 2024 3:19 pm โดย ballmykids View Topic IP และ vpn (VMware)
แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว
โดย Anonymous ศ 08 มี.ค. 2024 7:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
166
ศ 08 มี.ค. 2024 8:12 pm โดย mindphp View Topic แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว