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

imgemagick.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 1.76 KB

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

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


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Let's me learn how to landing on the moon.
โดย Ellie Freedom อ 20 ต.ค. 2019 6:43 pm บอร์ด Programming - PHP
0
13
อ 20 ต.ค. 2019 6:43 pm โดย Ellie Freedom
สอบถามครับ เชื่อมฐานข้อมูล Wordpress ไม่ได้ครับ
โดย chatee supasand ส 19 ต.ค. 2019 4:07 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
4
104
อ 20 ต.ค. 2019 1:38 pm โดย vmuser
วิธีการสร้าง logfile ในภาษา Python ด้วย logging
โดย jirawoot ศ 18 ต.ค. 2019 1:21 pm บอร์ด Python Knowledge
1
199
ส 19 ต.ค. 2019 4:25 am โดย mindphp
เปิดโพย รวมมิตรไอโฟนตกรุ่น เริ่ม 900.-
โดย promotion ศ 18 ต.ค. 2019 11:42 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
33
ศ 18 ต.ค. 2019 11:42 am โดย promotion
ทำยังไงถึงจะ upload file เข้าไปอยู่ในโฟร์เดอร์ได้ครับ
โดย jamepiyawat พฤ 17 ต.ค. 2019 6:27 pm บอร์ด Programming - PHP
1
70
พฤ 17 ต.ค. 2019 6:30 pm โดย tsukasaz
สร้างไฟล์ PDF ด้วยภาษา PHP
โดย kkk_k พฤ 17 ต.ค. 2019 1:08 am บอร์ด Programming - PHP
1
89
พฤ 17 ต.ค. 2019 1:23 am โดย mindphp
ถามเรื่องเช็คตัวเลขว่ามีเลขที่มากกว่า 10 เเต่น้อยกว่า 20 กี่ตัวยังไงครับ
โดย Golff Sinlapachai พ 16 ต.ค. 2019 6:19 pm บอร์ด Programming - PHP
1
66
พ 16 ต.ค. 2019 6:25 pm โดย mindphp
ฐานข้อมูลค่ะ
โดย sopida พ 16 ต.ค. 2019 3:37 pm บอร์ด Programming - PHP
1
58
พ 16 ต.ค. 2019 3:53 pm โดย thatsawan
replace หลายจุด และหลาย pattern พร้อมกันจบในการรันคำสั่งครั้งเดียว
โดย jataz2 พ 16 ต.ค. 2019 3:17 pm บอร์ด Programming - C/C++ & java & Python
0
53
พ 16 ต.ค. 2019 3:17 pm โดย jataz2
อัพเดพตัว Build Windows 10 แอพ Your Phone รับสายเรียกเข้า-โทรออกจาก สมาร์ทโฟนได้แล้ว
โดย chatee supasand อ 15 ต.ค. 2019 12:18 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
65
อ 15 ต.ค. 2019 12:18 pm โดย chatee supasand
ตัวอย่างการสร้าง Service odoo13 บน Ubuntu 16.04
โดย mindphp ส 12 ต.ค. 2019 1:35 am บอร์ด Linux - Web Server
0
107
ส 12 ต.ค. 2019 1:35 am โดย mindphp
MJupgrade Joomla 1.5.26 > 3.9 ขึ้น Error: Could not connect to MySQL server.
โดย เห็ด อินโมชั่น ศ 11 ต.ค. 2019 3:30 pm บอร์ด Joomla Development
3
95
ศ 11 ต.ค. 2019 5:14 pm โดย เห็ด อินโมชั่น
MJupgrade Joomla 1.5.26 > 3.9 ขึ้น Error: Could not connect to MySQL server.
โดย เห็ด อินโมชั่น ศ 11 ต.ค. 2019 4:59 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
7
2248
ส 12 ต.ค. 2019 3:35 am โดย mindphp
อยากทราบวิธีนับจำนวน id ที่ซ้ำกัน ครับ
โดย jamepiyawat ศ 11 ต.ค. 2019 5:06 pm บอร์ด SQL - Database
3
188
ศ 11 ต.ค. 2019 6:20 pm โดย jamepiyawat
การ Search ค้นหาข้อมูลของบอร์ด phpBB
โดย aninthana พฤ 10 ต.ค. 2019 6:46 pm บอร์ด Wordpress user Guide Knowledge
0
143
พฤ 10 ต.ค. 2019 6:46 pm โดย aninthana
ทำป้าย PopUp ด้วย Modal ใน Bootstrap เวอร์ชั่น 4
โดย jamepiyawat พฤ 10 ต.ค. 2019 5:20 pm บอร์ด Booststap Knowledge
0
150
พฤ 10 ต.ค. 2019 5:20 pm โดย jamepiyawat
ทำยังไงถึงจะไม่ให้แสดงเลข ID หน้า Alias ได้ครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 4:03 pm บอร์ด Joomla Development
1
72
พฤ 10 ต.ค. 2019 6:02 pm โดย tsukasaz
ทำไมผมถึงดึงข้อมูลชื่อหมวดหมู่ออกมาแสดงหน้าตั้งค่า module ไม่ได้ครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 3:47 pm บอร์ด Joomla Development
2
73
พฤ 10 ต.ค. 2019 6:36 pm โดย jamepiyawat
ตัวเลขด้านหน้าข้อความที่เราตั้ง Alias คืออะไรครับ
โดย jamepiyawat พฤ 10 ต.ค. 2019 11:36 am บอร์ด Joomla Development
5
155
พฤ 10 ต.ค. 2019 2:46 pm โดย mindphp
แก้ปัญหา Error Ignoring file '50unattended-upgrades.ucf-old' in directory บน Ubunto 16.04 ติดตั้ง apt-get
โดย mindphp พฤ 10 ต.ค. 2019 5:42 am บอร์ด Linux - Web Server
0
119
พฤ 10 ต.ค. 2019 5:42 am โดย mindphp