ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

เทคนิคและความสามารถของ 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
ฮิต
13322
ผู้สร้างเอกสาร
ae
วันที่สร้างเอกสาร
2017-06-28 16:17:48

imgemagick.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 1.76 KB

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
วิธีการดึงข้อมูลข้ามชีทมาใช้ใน Google Sheets
โดย nalinthip พฤ 08 ต.ค. 2020 12:30 pm บอร์ด Google For Work Knowledge
2
175
พฤ 08 ต.ค. 2020 1:30 pm โดย nalinthip
Private Messaging ระบบส่งข้อความส่วนตัวยอดฮิต
โดย PhoorichayaM พฤ 08 ต.ค. 2020 12:06 pm บอร์ด Share Knowledge
0
58
พฤ 08 ต.ค. 2020 12:06 pm โดย PhoorichayaM
วิธีดูข้อมูลย้อนหลัง และ กู้ข้อมูลมาใช้ใน Google Sheets ประวัติการทำงานในไฟล์เอกสาร
โดย nalinthip พฤ 08 ต.ค. 2020 11:57 am บอร์ด Google For Work Knowledge
0
75
พฤ 08 ต.ค. 2020 11:57 am โดย nalinthip
สอบถามการขึ้น column ใหม่ ให้ เมนู ใน joomla ค่ะ
โดย bolue พฤ 08 ต.ค. 2020 11:44 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
79
ศ 09 ต.ค. 2020 1:06 pm โดย mindphp
วิธีการแชร์งานให้คนอื่นได้ดูและแก้ไขใน Google Sheets
โดย nalinthip พฤ 08 ต.ค. 2020 11:29 am บอร์ด Google For Work Knowledge
0
77
พฤ 08 ต.ค. 2020 11:29 am โดย nalinthip
E Registration อีกหนึ่งบริการที่น่าสนใจ
โดย PhoorichayaM พฤ 08 ต.ค. 2020 11:12 am บอร์ด Share Knowledge
0
72
พฤ 08 ต.ค. 2020 11:12 am โดย PhoorichayaM
วิธีการคำนวณ FIBONACCI SERIES PHP
โดย makup พฤ 08 ต.ค. 2020 8:47 am บอร์ด PHP Knowledge
0
62
พฤ 08 ต.ค. 2020 8:47 am โดย makup
เจอ Error ในการใช้คำสั่ง composer global remove laravel/installer ใน Command Terminal
โดย makup พ 07 ต.ค. 2020 8:07 pm บอร์ด Programming - PHP
2
171
จ 12 ต.ค. 2020 10:31 pm โดย makup
วิธีการคำนวณ Sum of individual digits of a number PHP
โดย makup พ 07 ต.ค. 2020 6:54 pm บอร์ด PHP Knowledge
0
68
พ 07 ต.ค. 2020 6:54 pm โดย makup
วิธีการใช้งาน Google Lens: อีกทางเลือกสำหรับนักแปลมือสมัครเล่น
โดย PhoorichayaM พ 07 ต.ค. 2020 5:41 pm บอร์ด Google For Work Knowledge
2
84
พฤ 08 ต.ค. 2020 12:44 pm โดย PhoorichayaM
การคำนวณ FACTORIAL PROGRAMING PHP
โดย makup พ 07 ต.ค. 2020 5:34 pm บอร์ด PHP Knowledge
0
82
พ 07 ต.ค. 2020 5:34 pm โดย makup
ขั้นตอนการติดตั้ง Laravel Framework บน Ubuntu OS
โดย makup พ 07 ต.ค. 2020 4:39 pm บอร์ด PHP Knowledge
2
248
พ 07 ต.ค. 2020 6:26 pm โดย makup
ศัพท์ Digital Marketing น่ารู้ สำหรับ entrepreneur ยุค new normal
โดย PhoorichayaM พ 07 ต.ค. 2020 4:16 pm บอร์ด Share Knowledge
0
79
พ 07 ต.ค. 2020 4:16 pm โดย PhoorichayaM
จะดึงข้อมูลจากสองชีทมาใช้ทำยังไงคะ
โดย nalinthip พ 07 ต.ค. 2020 3:59 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
85
พ 07 ต.ค. 2020 4:33 pm โดย thatsawan
วลีภาษาอังกฤษยอดนิยมในแวดวง IT: สำหรับผู้เริ่มต้นเรียนรู้ภาษาอังกฤษด้านไอที
โดย PhoorichayaM พ 07 ต.ค. 2020 2:51 pm บอร์ด Share Knowledge
0
81
พ 07 ต.ค. 2020 2:51 pm โดย PhoorichayaM
สอบถามวิธีเช็ค log
โดย nai_cyp พ 07 ต.ค. 2020 1:28 pm บอร์ด Programming - C/C++ & java & Python
0
215
พ 07 ต.ค. 2020 1:28 pm โดย nai_cyp
5 ศัพท์ไอทีพื้นฐานที่ควรรู้ เพื่อความเข้าใจที่มากขึ้น
โดย PhoorichayaM พ 07 ต.ค. 2020 12:56 pm บอร์ด Share Knowledge
0
122
พ 07 ต.ค. 2020 12:56 pm โดย PhoorichayaM
ประโยชน์ของ Google Translate ที่คุณอาจจะยังใช้ไม่ครบ
โดย PhoorichayaM พ 07 ต.ค. 2020 12:10 pm บอร์ด Share Knowledge
0
125
พ 07 ต.ค. 2020 12:10 pm โดย PhoorichayaM
คำแนะนำถึงการเป็นแบบอย่างที่ดีเรื่องการเงินในครอบครัว
โดย medalezga พ 07 ต.ค. 2020 12:01 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
175
พ 07 ต.ค. 2020 12:01 pm โดย medalezga
เจอปัญหา ในการติดตั้งคำสั่ง sudo composer global require laravel/installer ที่เปิดด้วย Command Terminal
โดย makup พ 07 ต.ค. 2020 11:48 am บอร์ด Programming - PHP
4
228
พ 07 ต.ค. 2020 12:31 pm โดย makup