Wer weiß, wie man animierte GIFs mit Carrierwave + MiniMagick zu ihrem ersten Frame zerquetscht?Carrierwave + MiniMagick - Wie man animierte GIFs zu ihrem ersten Frame zerquetscht?
6
A
Antwort
12
denke ich MiniMagick hat einige Änderungen hatte, weil ich herausfinden, nur drei Stunden damit verbracht, warum Andreys Code didn arbeite nicht für mich.
Ich habe folgende Fehlermeldung:
ActiveRecord::RecordInvalid (Validation failed:
Image Failed to manipulate with MiniMagick, maybe it is not an image?
Original Error: Command
("mogrify -scene /var/folders/0o/0oqNck+++TI/-Tmp-/mini_magick2022-499-15zc.gif")
failed: {:status_code=>1, :output=>"mogrify: invalid argument for option
`/var/folders/0o/0oqNck+++TI/-Tmp-/mini_magick2022-499-15zc.gif': -scene
@ error/mogrify.c/MogrifyImageCommand/5558.\n"})
Schließlich fand ich, dass MiniMagick :: Bild collapse!
die Methode hat (hier: http://www.ruby-doc.org/gems/docs/j/jf--mini_magick-3.1/MiniMagick/Image.html#method-i-collapse-21), die das Problem löst:
process :remove_animation
def remove_animation
manipulate! do |img|
if img.mime_type.match /gif/
img.collapse!
end
img
end
end
3
Es Arbeiten für mich:
def only_first_frame
manipulate! do |img|
if img.mime_type.match /gif/
if img.scene == 0
img = img.cur_image #Magick::ImageList.new(img.base_filename)[0]
else
img = nil # avoid concat all frames
end
end
img
end
end
Dann müssen Sie rufen:
process :only_first_frame
+0
Apologies, dass es dauerte Ich habe so lange Zeit, deine Antwort zu akzeptieren! – alistairholt
Verwandte Themen
- 1. Wie animierte GIFs von Android WebView funktionieren
- 2. Java: Animierte GIFs werden automatisch teilweise transparent
- 3. Heroku, CarrierWave, MiniMagick: Zufällige TMP-Datei fehlt
- 4. Animierte Gifs, die Input Flicker in IE
- 5. IE7/IE8 und gefrorene animierte Gifs
- 6. Welche Browser unterstützen animierte Gifs nicht?
- 7. animierte Gifs spielen nicht im Browser unter html5
- 8. Wie zeigen Sie animierte GIFs mit .NET Compact Framework
- 9. Carrierwave inkl. MiniMagick -> Uploads funktionieren nicht mehr
- 10. Carrierwave, MiniMagick - NoMethodError: undefinierte Methode `size 'für nil: NilClass
- 11. Animierte GIFs spielen nicht in Firefox, wenn über AngularJS geladen
- 12. Animierte GIF zu Base64 kodieren
- 13. Wie man am besten alte Commits zerquetscht
- 14. Wie spin.js anstelle eines animierten Gifs zu verwenden ist
- 15. Wie animiert man GIFs im HTML-Dokument?
- 16. Animation, endet am ersten Frame
- 17. Wie kann ich Bilder beim Upload mit Rails, Carrierwave und Minimagick zuschneiden?
- 18. Wie bekomme ich den ersten Video Frame?
- 19. Drawable in Aussicht zerquetscht zu werden
- 20. ersten Frame Android-Animation zu früh auf Image angewendet
- 21. Bedingte Bildgrößenanpassung mit Carrierwave
- 22. Carrierwave Error Msg: Fehler beim Bearbeiten mit MiniMagick, vielleicht ist es kein Bild?
- 23. CSS-Animationen ändern Frame-Rate
- 24. carrierwave + mini_magick Edelsteine = kein Bildfehler
- 25. Git: Wie man Commits zerquetscht, die merge-commit dazwischen haben?
- 26. Wie fügt man animierte Kettenübergänge hinzu, ohne Storyboards zu verwenden?
- 27. ListView zerquetscht Tabs
- 28. Was wird verwendet, um animierte Screenshots zu erstellen (wie auf Atom-Paketen zu sehen)
- 29. Wie zeichnet man animierte Levelleiste in TVirtualStringTree?
- 30. Zurück zum ersten Frame nach dem Videospiel
Ich habe es nicht versucht, aber das klingt ideal. Danke fürs Schreiben. – alistairholt
Methode könnte neu geschrieben werden, um zu sagen: 'manipulieren! (&: Reduzieren!) Wenn content_type == 'image/gif' –