ImageMagick แปลงไม่สามารถแปลงเป็นเว็บเพจได้


28

บน Ubuntu 12.04 ImageMagick ดูเหมือนจะไม่รองรับ webp

convert flyer.png flyer.webp

สร้างไฟล์ png ด้วยส่วนขยาย webp

ในเอกสารของ Webpมีการระบุว่า ImageMagick รองรับ webp

$ convert --version`
Version: ImageMagick 6.6.9-7 2012-08-17 Q16

ฉันติดตั้งทั้งสองอย่างนี้แล้ว:

  • libwebp-dev - สูญเสียการบีบอัดภาพดิจิตอลภาพถ่าย
  • libwebp2 - สูญเสียการบีบอัดภาพดิจิตอลภาพถ่าย

นอกจากนี้การแปลงไม่สามารถถอดรหัสไฟล์ webp ได้

เกิดอะไรขึ้นและนี่เป็นข้อบกพร่องของ Ubuntu หรือไม่


1
convert -list formatคุณสามารถแสดงรายการรูปแบบการสนับสนุนด้วย ในระบบของฉันด้วยconvertเวอร์ชันเดียวกันwebpจะไม่ปรากฏขึ้น
chronitis

1
ขอบคุณฉันสร้างรายงานข้อผิดพลาดบน Launchpad จากนั้นมันสามารถแก้ไขได้สำหรับเราทุกคน bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
Janghou

สิ่งนี้ส่งผลกระทบต่อ debian 7 (เสียงฮืด ๆ ) แต่พวกเขาไม่ได้ใช้ launchpad สำหรับข้อบกพร่อง
earthmeLon

คำตอบ:


21

แก้ไขใน 16.04

ใน 16.04 convert flyer.png flyer.webpใช้งานได้แม้ว่าwebpจะต้อง:

sudo apt-get install webp

หากไม่มีการwebpติดตั้งข้อความแสดงข้อผิดพลาดนี้จะแสดง:

convert: delegate failed `"cwebp" -quiet -q %Q "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310.

1
โชคwebpไม่ดีที่ ImageMagick ไม่รู้จัก7.0.8-27ในฐานะตัวแทน แต่คุณต้องติดตั้งlibwebp-dev
AbdelHady

20

แพ็คเกจซอร์สของ Ubuntu สำหรับ imagemagick ไม่ได้ประกาศการพึ่งพา build บน libwebp-dev ดังนั้น imagemagick จึงได้รับการสร้างขึ้นโดยไม่มีการสนับสนุน webp นี่อาจถือเป็นข้อบกพร่องใน Ubuntu

เอาต์พุตที่เกี่ยวข้องจากกระบวนการบิลด์:

checking for WEBP... 
checking webp/decode.h usability... no
checking webp/decode.h presence... no
checking for webp/decode.h... no
checking for WebPDecodeRGB in -lwebp... no
checking if WEBP package is complete... no

และเมื่อติดตั้งlibwebp-devติดตั้ง libwebp-dev :

checking for WEBP... 
checking webp/decode.h usability... yes
checking webp/decode.h presence... yes
checking for webp/decode.h... yes
checking for WebPDecodeRGB in -lwebp... yes
checking if WEBP package is complete... yes

หากคุณต้องการแก้ไขด้วยตัวคุณเองคุณสามารถสร้างแพ็คเกจและติดตั้งเวอร์ชั่นของคุณได้:

cd /tmp
mkdir imagemagick
cd imagemagick
sudo apt-get build-dep imagemagick
sudo apt-get install libwebp-dev devscripts
apt-get source imagemagick
cd imagemagick-*
debuild -uc -us
sudo dpkg -i ../*magick*.deb

ขอบคุณเราจะแก้ไขสิ่งนี้ได้อย่างไร
Janghou

1
หากคุณต้องการแก้ไขด้วยตัวคุณเองคุณสามารถสร้างแพ็คเกจใหม่ได้ฉันได้แก้ไขคำตอบเพื่อรวมข้อมูลแล้ว
Dennis Kaarsemaker

@Janghou มันอยู่ในรายการบั๊กของ Ubuntu ตอนนี้ bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1117481
ดาวตก

14

ในช่วงเวลาหนึ่งสามารถติดตั้ง:

$ sudo apt-get install webp

และใช้dwebpและcwebpคำสั่งเพื่อขยาย / บีบอัดจาก / ถึงรูปแบบไฟล์ webp


3
สิ่งนี้ยังช่วยให้ idenfity ของ imagemagick ทำงานได้อย่างถูกต้องกับรูปภาพ webp จะแก้ไขข้อผิดพลาดต่อไปนี้: ระบุ: มอบหมายล้มเหลว"dwebp" -pam "%i" -o "%o"' @ error/delegate.c/InvokeDelegate/1310. identify: unable to open image / tmp / magick-510118LyrHZ5A5Sr ': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว @ error / blob.c / OpenBlob / 2712 ระบุ: ไม่สามารถเปิดไฟล์ `/ tmp / magick-510118LyrHZ5A5Sr ': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว @ error / constitute.c / ReadImage / 540
four43

1
โชคwebpไม่ดีที่ ImageMagick ไม่รู้จัก7.0.8-27ในฐานะตัวแทน แต่คุณต้องติดตั้งlibwebp-dev
AbdelHady

2

การสนับสนุน WebP ยังมีปัญหาบางอย่างด้วยความโปร่งใสก่อน 6.8.3 ดังนั้นฉันจึงใช้ 6.8.9-9 จาก 15.04 Vivid และ backported เป็น 14.04 Trusty ด้วยการสนับสนุน webp ใช้ความเสี่ยงของคุณเอง:

sudo add-apt-repository ppa:jamedjo/ppa
sudo apt-get update
sudo apt-get install imagemagick libmagickcore-6.q16-2

ในกรณีที่คุณต้องการทำซ้ำขั้นตอนคือ:

  • ใช้ backportpackage imagemagick --source vivid --destination trusty --workdir=imagemagick-backportดึงข้อมูลรุ่นที่สดใสและเพื่อแยกtar -xf.deb
  • จากนั้นภายในการdebian/controlแทนที่การdpkg-dev (>= 1.17.6)พึ่งพาเพิ่มการพึ่งพาlibwebp-devและการแทนที่Architecture: any ด้วยamd64เพื่อหลีกเลี่ยงความล้มเหลวในการสร้าง
  • การเพิ่ม--with-webpเข้าdebian/rulesเพิ่มรายการบันทึกการเปลี่ยนแปลงด้วยdchและการใช้debuild -S -sdเพื่อสร้างแพคเกจแหล่งที่มาเท่านั้น
  • สุดท้ายตั้งค่าบัญชีใน launchpad และทำตามคำแนะนำเพื่อแบ่งปันการแก้ไขของคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.