Làm cách nào tôi có thể chia tệp .gif hoạt hình thành các khung thành phần của nó?


44

Làm thế nào tôi có thể dễ dàng phân chia một tập tin .gif hoạt hình? Tôi muốn xem từng khung hình.

Tôi thực sự muốn không xuất mọi khung hình vào một thư mục. Tôi muốn xem chúng riêng lẻ trong một ứng dụng nếu có thể.

Điều này có thể có trên Linux không?

Câu trả lời:


52

Hãy thử mở chúng bằng The Gimp; Tôi tin rằng nó sẽ mở gifs hoạt hình với một lớp trên mỗi khung.

Bạn nói rằng bạn không muốn kết xuất tất cả các khung vào các tệp trên một thư mục, nhưng tôi sẽ cho bạn biết cách thực hiện bằng mọi cách :) cài đặt ImageMagick hoặc đồ họa, sau đó:

cho ImageMagick:

convert animation.gif target.png

cho đồ họa:

gm convert animation.gif target.png

nó sẽ ghi các khung vào target0.png, target1.png, ... và cứ thế. Sau đó, bạn có thể nhập thư mục và chạy eog, nó sẽ hiển thị cho bạn tất cả các khung trên cùng một ứng dụng. Khi bạn không còn cần các khung, chỉ cần rm target*.png.


hình ảnh thật tuyệt vời !!
fccoelho

1
Chuyển đổi hình ảnh không thành công đối với tôi, vì dường như mỗi hình ảnh của gif được thể hiện dưới dạng một lớp nền trong suốt mới và chuyển đổi đã tạo ra các lớp trong suốt đó: upload.wik hè.org / wikipedia / commons / 5 / 5d / StarExample.gif
Ciro Santilli 新疆 改造 心 心 事件

Tôi đã mở gif của mình trong gimp, nhưng tôi vẫn không biết cách xem từng khung hình - tôi chỉ thấy khung hình cuối cùng. Tôi đang làm việc với hoạt hình này: /tmp/Non-Native-American-Nations-Territorial-Claims-over-NAFTA-countries-1750-2008.gif
nealmcb

3
GraphicsMagick cần phải ở dạng gm convert some-image.gif +adjoin some-image%d.pngđể hoạt động. Hoặc, gm convert some-image.gif -coalesce +adjoin some-image%d.pngđối với các khung con có kích thước khác nhau với độ lệch khác nhau.
l --marc l

1
Việc chỉ định convertbỏ lỡ -coalescetùy chọn, cần thiết cho những gì người dùng mong đợi.
Marcus

41

Nếu các khung khác nhau có các vùng trong suốt và xây dựng lẫn nhau, bạn có thể sử dụng convertlệnh với -coalescetùy chọn "" để tạo một tập hợp các tệp target-0.png, target-1.png, v.v., mỗi khung sẽ hợp nhất chuỗi trước đó hình ảnh:

convert -coalesce animation.gif target.png

1
Nhận xét tuyệt vời nhưng cần giải thích. Về cơ bản, nó giải quyết vấn đề @cirosantilli gặp phải với ImageMagick trả về những gì trông giống như cập nhật cho các khu vực màn hình cụ thể. -coalesce hợp nhất các bản cập nhật đó để cung cấp cho bạn một kết xuất hoàn chỉnh.
AnthonyVO

3
Cần lưu ý rằng (kể từ phiên bản ImageMagick 6.7.7) dường như có một số rò rỉ bộ nhớ: không thử -coalescevới các .gifscreencasts dài , nó có thể sẽ tiêu thụ tất cả bộ nhớ có sẵn và có thể treo toàn bộ hệ thống của bạn.
leftaroundabout

4
bạn có thể chỉ định tên tệp đầu ra thông qua một cái gì đó như:convert -coalesce animation.gif target.%04d.png
Trevor Boyd Smith

2

đối với tôi, với ImageMagick(thông tin phiên bản 6.8.9-9 Q16 x86_64 2017-07-31:)

convert gif.gif gif.pdf

tạo một pdf với mỗi trang là một khung của gif đầu vào, sau đó bạn có thể chỉ cần trang qua các khung trong ứng dụng xem pdf mà bạn chọn


Điều đó dường như quá phức tạp và không giống như những gì OP muốn.
David Foerster

Để có được mỗi khung làm một trang trong .pdf là một ý tưởng tuyệt vời, chỉ cần xem xét rằng phương pháp này có thể có lỗi và bạn cần phải điều chỉnh ứng dụng .
yêu.by.Jesus

2

Sử dụng mpv. Mở nó trên máy tính để bàn. Kéo gif vào nó. Chụp ảnh màn hình của khung hình mong muốn / đơn của bạn với phím s. Bạn thậm chí có thể tạm dừng nếu gif của bạn nhanh. Cách rất nhanh.

===========

bạn có thể muốn sử dụng các cài đặt này trước tiên [một khi đã đặt, bạn không phải thực hiện lại] :

gedit ~/.config/mpv/mpv.conf

và nhập và lưu:

--screenshot-format Lựa chọn: jpg jpeg png (mặc định: jpg)

cho chất lượng png cao nhất:

--screenshot-format=png
--screenshot-png-compression=9

hoặc nếu bạn muốn jpg

--screenshot-jpeg-quality Số nguyên (0 đến 100) (mặc định: 90)

Sử dụng mpv --list-options cho các chi tiết khác


Xin chào :) trở lại andrew.46. đã thử Gimp và đã thất vọng. không có gì nhiều mà mpv không thể làm:]
shantiq
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.