วิธีเพิ่มการรองรับรูปแบบภาพ JPEG


12

หลังจากติดตั้ง Imagemagick ฉันได้ทดสอบด้วยภาพ jpg ดังนี้:

identify 1.jpg

แต่ฉันได้ผลลัพธ์นี้:

identify: no decode delegate for this image format `1.jpg' @ error/constitute.c/ReadImage/550.

จากนั้นฉันพยายามเพิ่มการรองรับรูปแบบ JPEG โดย:

yum install libjpeg libjpeg-devel

แต่ฉันได้:

Setting up Install Process
No package libjpeg available.
No package libjpeg-devel available.
Nothing to do

ฉันคิดว่าฉันจำเป็นต้องอัปเดต apt-get ฉันทำ:

apt-get install libjpeg libjpeg-devel

แต่ฉันได้:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libjpeg
E: Unable to locate package libjpeg-devel

มีวิธีง่าย ๆ ในการติดตั้งไลบรารีเหล่านั้นหรือไม่? ฉันใช้ Ubuntu 12.04


2
ทำไมคุณใช้yum? นั่นคือผู้จัดการแพคเกจสำหรับการแจกจ่ายที่แตกต่างกัน (Red Hat & Fedora) และหากคุณเคยyumติดตั้ง imagemagick ฉันไม่แปลกใจเลยที่ไม่สามารถหาห้องสมุดได้! คุณควรติดตั้งซอฟต์แวร์ด้วย apt-get เว้นแต่คุณจะรู้ว่ากำลังทำอะไรอยู่! นอกจากนี้ "Ubuntu 12" ยังไม่เจาะจงพอ ... มี Ubuntu สองรุ่นที่เริ่มต้นด้วย "12": 12.04 และ 12.10 รุ่นของ Ubuntu นั้นใช้วันที่วางจำหน่าย: 12.04 วางจำหน่ายเดือนเมษายน (เดือน # 04) ที่ '12 และ 12.10 เปิดตัวเดือนตุลาคม '12 โปรดตรวจสอบและระบุ!
สามสิบสาม

ฉันมี Ubuntu Release 12.04 (แม่นยำ) 32- บิตฉันไม่ได้ติดตั้ง imagemagick ด้วย yum แต่ฉันแทนที่ xvfz ImageMagick.tar.gz, cd ImageMagick-6.8.0, cd ImageMagick-6.8.0-4, ./configure ทำติดตั้ง sudo ติดตั้ง sudo ldconfig / usr / local / lib
Samir Sabri

ลอง apt-get install libjpeg-dev
Shashank Singla

มันเป็นคำตอบที่ยอดเยี่ยมจริงๆมีhttp://askubuntu.com/a/746195
L. Percy

แพคเกจ imagemagick ใด ๆ ในโลกที่สามารถใช้งานได้โดยไม่สนับสนุน JPEG ที่จัดทำแพ็กเกจล่วงหน้า! มันเหมือนกับการขายพิซซ่าที่ไม่มีชีสหรือขนมปังหรือซอสมะเขือเทศ
Sridhar Sarnobat

คำตอบ:


11

ผมแก้ไขปัญหาโดยการติดตั้งจากแหล่งไฟล์ jpeg เข้ารหัสห้องสมุดที่มีอยู่ในhttp://www.ijg.org/files/jpegsrc.v8c.tar.gz

cd /usr/local/src
tar xvfz jpeg-8c.tar.gz
cd jpeg-8c
./configure --enable-shared --prefix=$CONFIGURE_PREFIX
make
sudo make install

จากนั้นฉันติดตั้ง ImageMagick ใหม่จากแหล่งที่มา:

cd /usr/local/src
tar xvfz ImageMagick-6.6.9-5.tar.gz
cd ImageMagick-6.6.9-5
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp
make
sudo make install

ตอนนี้มันใช้งานได้ฉันได้ลองแบบนี้:

sam@ubuntu:~/RubymineProjects/project/tmp$ identify 1.jpg
1.jpg JPEG 128x106 128x106+0+0 8-bit sRGB 2.22KB 0.000u 0:00.000

สิ่งนี้ใช้ได้สำหรับฉัน ฉันต้องเพิ่มการส่งออก LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / in
.profile

ฉันติดตั้ง jpegsrc แรกจากแหล่งที่มาและติดตั้ง ImageMagick ใหม่ผ่านapt-getและก็ใช้งานได้เช่นกัน
kyng

6

หากคุณตัดสินใจที่จะสร้าง ImageMagick จากแหล่งที่มาคุณจะต้องพร้อมที่จะแก้ไขการอ้างอิงทั้งหมดด้วยตนเอง คุณควรติดตั้งซอฟต์แวร์ทั้งหมดบน Ubuntu จากที่เก็บ - ไม่ว่าจะเป็น repos อย่างเป็นทางการหรือ PPA

หากคุณติดตั้ง Imagemagick โดยใช้ APT ( apt-get, Synaptic, Software Center ฯลฯ ) ไฟล์ JPG จะทำงานได้ดีตามที่ฉันยืนยันในเครื่องของฉัน

หากเหตุผลของคุณในการสร้างจากแหล่งที่มาคือรับรุ่นล่าสุดให้ล่า PPA ที่ติดตามรุ่นล่าสุด หากคุณกำลังสร้างจากแหล่งที่มาเพื่อช่วยในการพัฒนาคุณควรหาข้อมูลจากกลุ่มผู้ใช้ Imagemagick ที่ต้องการสร้างจากแหล่งที่มาอย่างประสบความสำเร็จ มันอาจจะเป็นไปได้ว่าคุณจะต้องระบุธงบางอย่างหรือมีบางการพัฒนาห้องสมุดติดตั้งก่อนที่จะใช้./configure./configure

แต่โดยปกติแล้วการสร้างจากแหล่งข้อมูลจะทำให้สิ่งต่าง ๆ ยุ่งยากโดยไม่จำเป็น

อ๋อ Red Hat และ Ubuntu ใช้ชื่อต่าง ๆ สำหรับแพ็คเกจ ดังนั้นหากyumบ่นเกี่ยวกับแพคเกจที่ขาดหายไปมันไม่น่าแปลกใจหากapt-getไม่สามารถหาแพ็คเกจด้วยชื่อนั้นได้ คุณไม่ควรผสมผสานผู้จัดการแพ็คเกจในระบบเว้นแต่คุณจะมีเหตุผลที่ดีในการทำเช่นนั้น ถึงอย่างนั้นลองตัวเลือกอื่น ๆ เสียก่อน


ฉันไม่มีเหตุผลที่เฉพาะเจาะจงในการสร้างจากแหล่งที่มาหากติดตั้ง Imagemagick โดยใช้ APT (apt-get, Synaptic, Software Center ฯลฯ ) จะแก้ไขปัญหาไฟล์ JPG ฉันจะไปด้วยคุณจะกรุณาชี้วิธีการติดตั้ง Imagemagick ใช้ APT เหมือนที่คุณทำใช่ไหม
Samir Sabri

@SamirSabri: เพียงแค่ค้นหา Software Center หรือ Synaptic หรือการใช้งานแท็บเสร็จสิ้นในการค้นพบคำสั่ง:apt-get sudo apt-get install imagemagick
Scott Severance

อย่างไรก็ตามฉันขอแนะนำให้คุณลบความพยายามก่อนหน้าทั้งหมดเพื่อติดตั้ง imagemagick ก่อนที่คุณจะพยายามติดตั้งโดยใช้วิธีการของฉัน ไม่เช่นนั้นคุณอาจท้ายเรื่องความขัดแย้ง
Scott Severance

แม้ว่าฉันได้ลบความพยายามก่อนหน้านี้ไปแล้ว แต่ฉันพบข้อผิดพลาดเมื่อระบุภาพ jpg เช่นนี้: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ ident 1.jpg ระบุ: ไม่มีผู้แทนการถอดรหัสสำหรับรูปแบบภาพนี้ `1.jpg ' @ error / constitute.c / ReadImage / 550
Samir Sabri

3

โปรดทราบว่าno decode delegateข้อผิดพลาดสามารถ (ค่อนข้างสับสน) เป็นผลมาจาก imagemagick (หรือบางส่วนของมัน) ไม่พบไฟล์ ดังนั้นก่อนที่จะใช้ติดตั้ง ImageMagick ตรวจสอบกับidentify -list formatและconvert -list configureไม่ว่าจะเป็นรูปแบบ JPEG ได้รับการสนับสนุนและถ้ามันเป็นปัญหาที่เกิดขึ้นอาจจะเป็นที่อื่น

ตัวอย่างเช่นconvert -resize 50% foo\ bar.jpgทำให้ฉันรู้สึกno decode delegate for this image formatผิดเพี้ยน แต่convert -resize 50% 'foo bar.jpg'ทำงานได้อย่างสมบูรณ์


1

หากคุณเพิ่งติดตั้ง php5-imagick ลองติดตั้งแพ็กเกจ imagemagick แบบเต็ม สิ่งนี้จะติดตั้งไลบรารีที่จำเป็นทั้งหมดเช่น jpeg one

sudo apt-get install imagemagick

จากนั้นรีสตาร์ทเว็บเซิร์ฟเวอร์ของคุณเพื่อโหลดไลบรารีซ้ำ:

sudo service apache2 restart

การถอดรหัสแบบ JPEG ควรทำงานได้โดยไม่มีข้อผิดพลาด


0

คุณเคยลองไหม:

sudo apt-get install libjpeg62

หากคำสั่งดังกล่าวไม่ทำงานโปรดไปที่ลิงค์ต่อไปนี้

http://psx-scene.com/forums/f150/help-install-libjpeg-libpng-ubuntu-9-10-livecd-64122/

แจ้งให้ทราบหากนี่เป็นประโยชน์ขอให้โชคดี ... :)


ฉันลองวิธีแก้ปัญหาของคุณแล้วฉันได้รับ: กำลังอ่านรายการแพ็กเกจ ... เสร็จสิ้นการสร้างแผนผังการพึ่งพาการอ่านข้อมูลสถานะ ... เสร็จแล้ว libjpeg62 เป็นรุ่นล่าสุดแล้ว 0 อัพเกรดแล้ว 0 เพิ่งติดตั้งใหม่ 0 เพื่อลบและ 6 ไม่ได้อัปเกรด แต่ฉันยังคงได้รับข้อผิดพลาดเมื่อระบุภาพ jpg: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ ระบุ 1.jpg ระบุ: ไม่มีผู้แทนการถอดรหัสสำหรับรูปแบบภาพนี้ `1.jpg '@ ข้อผิดพลาด / constitute.c / ReadImage / 550
Samir Sabri

ตกลงฉันพบสิ่งนี้: blog.ericlamb.net/2008/11/…โปรดตรวจสอบและแจ้งให้เราทราบขอบคุณสำหรับการตอบกลับของคุณ
Rishi Kolvekar

ฉันเพิ่งแก้ไขก่อนที่จะอ่านความคิดเห็นล่าสุดของคุณขอบคุณฉันมีมันในคำตอบของฉันด้านล่าง
Samir Sabri

ฟังดูดี !!! :)
Rishi Kolvekar

0

| วิธีที่ง่ายที่สุด | ดาวน์โหลด " Synaptic Package Manager " จากศูนย์ซอฟต์แวร์ -> นำแพคเกจ libjpeg รุ่นเก่าออก * -> ติดตั้ง libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev ที่ติดตั้งใหม่

PS: ฉันได้รับข้อผิดพลาดเดียวกัน ฉันใช้เวลา 2 วันในการแก้ไข ข้อผิดพลาดของฉันเมื่อฉันพยายามแสดงภาพ jpg:

no decode delegate for this image format `jpeg' @ error/constitute.c/readimage/504

จากนั้นฉันดาวน์โหลด " Synaptic Package Manager " จากศูนย์ซอฟต์แวร์ -> นำแพคเกจ libjpeg รุ่นเก่าออก * -> ติดตั้ง libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev ที่ติดตั้งใหม่

(* ผู้จัดการแพคเกจ synaptics จะแสดงการพึ่งพากับแพคเกจอื่น ๆ ลบเฉพาะแพคเกจ libjpeg อิสระเก่า)

หลังจากนั้นฉันสามารถเปิดภาพ JPEG ได้โดยไม่ต้องกลัวว่าจะเกิดข้อผิดพลาด

หวังว่าจะช่วย :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.