Cách thêm hỗ trợ cho định dạng hình ảnh JPEG


12

Sau khi cài đặt Imagemagick, tôi đã thử nghiệm nó với hình ảnh jpg, như thế này:

identify 1.jpg

Nhưng, tôi đã nhận được kết quả này:

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

Sau đó, tôi đã cố gắng thêm hỗ trợ cho định dạng JPEG bằng cách:

yum install libjpeg libjpeg-devel

nhưng, tôi đã nhận:

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

Tôi nghĩ rằng tôi cần cập nhật apt-get, tôi đã làm:

apt-get install libjpeg libjpeg-devel

nhưng, tôi đã nhận:

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

Có cách nào dễ dàng để cài đặt các thư viện đó không? Tôi đang sử dụng Ubuntu 12.04.


2
Tại sao bạn đang sử dụng yum? Đó là trình quản lý gói cho một bản phân phối khác (Red Hat & Fedora) và nếu bạn đã sử dụng yumđể cài đặt hình ảnh, tôi không ngạc nhiên khi không thể tìm thấy các thư viện! Bạn chỉ nên cài đặt phần mềm với apt-get trừ khi bạn thực sự biết bạn đang làm gì! Ngoài ra, "Ubuntu 12" không đủ cụ thể ... Có hai phiên bản Ubuntu bắt đầu bằng "12": 12.04 và 12.10. Các phiên bản Ubuntu dựa trên ngày phát hành: 12.04 được phát hành vào tháng 4 (tháng # 04) của '12 và 12.10 được phát hành vào tháng 10 năm 12. Hãy chắc chắn và chỉ định!
Thứ ba

Tôi có Ubuntu Release 12.04 (chính xác) 32-bit, tôi đã không cài đặt hình ảnh với yum, thay vào đó tôi tar xvfz ImageMagick.tar.gz, cd ImageMagick-6.8.0, cd ImageMagick-6.8.0-4, ./ thông minh , tạo, sudo thực hiện cài đặt, sudo ldconfig / usr / local / lib
Samir Sabri

dùng thử apt-get cài đặt libjpeg-dev
Shashank Singla

Đó là một câu trả lời thực sự tuyệt vời đó http://askubfox.com/a/746195
L. Percy

Làm thế nào trên thế giới bất kỳ gói hình ảnh nào có thể được sử dụng mà không cần hỗ trợ cho JPEG được đóng gói sẵn?! Điều đó giống như bán pizza mà không có phô mai hoặc bánh mì hoặc nước sốt cà chua.
Sridhar Sarnobat

Câu trả lời:


11

Tôi đã khắc phục sự cố bằng cách cài đặt từ nguồn thư viện mã hóa jpeg có sẵn tại 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

Sau đó, tôi cài đặt lại ImageMagick từ nguồn:

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

Bây giờ nó hoạt động, tôi đã thử nó như thế này:

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

Điều này làm việc cho tôi. Tôi đã phải thêm xuất LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / in .profile
mv288

Tôi chỉ cài đặt jpegsrc đầu tiên từ nguồn và cài đặt lại ImageMagick qua apt-getvà nó cũng hoạt động.
kyng

6

Nếu bạn quyết định xây dựng ImageMagick từ nguồn, bạn cần chuẩn bị để giải quyết thủ công tất cả các phụ thuộc. Trừ khi bạn có nhu cầu cấp bách, bạn nên cài đặt tất cả phần mềm trên Ubuntu từ kho lưu trữ - hoặc là bản chính thức hoặc PPA.

Nếu bạn cài đặt Imagemagick bằng APT ( apt-get, Synaptic, Software Center, v.v.), thì các tệp JPG sẽ hoạt động tốt, như tôi đã xác nhận trên máy của mình.

Nếu lý do của bạn để xây dựng từ nguồn là để có được một phiên bản mới hơn, hãy tìm kiếm một PPA theo dõi phiên bản mới nhất. Nếu bạn đang xây dựng từ nguồn để giúp phát triển, thì bạn nên tìm hiểu từ những người của Imagemagick chỉ những gì được yêu cầu để thành công xây dựng nó từ nguồn. Có thể là bạn cần chỉ định một số cờ cho ./configurehoặc cài đặt một số thư viện phát triển trước khi chạy ./configure.

Nhưng thông thường, xây dựng từ nguồn chỉ cần phức tạp hóa mọi thứ.

Ồ, nhân tiện, Red Hat và Ubuntu sử dụng các tên khác nhau cho các gói. Vì vậy, nếu yumphàn nàn về một gói bị thiếu, sẽ không ngạc nhiên nếu apt-getkhông thể tìm thấy một gói theo tên đó. Bạn không nên kết hợp các trình quản lý gói trên một hệ thống trừ khi bạn có lý do thực sự tốt để làm như vậy. Ngay cả sau đó, hãy thử mọi lựa chọn khác trước.


Tôi không có lý do cụ thể để xây dựng từ nguồn, nếu cài đặt Imagemagick bằng APT (apt-get, Synaptic, Software Center, v.v.) sẽ khắc phục sự cố tệp JPG, tôi sẽ làm theo, bạn có thể chỉ cho tôi cách cài đặt Imagemagick sử dụng APT như bạn đã làm?
Samir Sabri

@SamirSabri: Chỉ cần tìm kiếm Trung tâm phần mềm hoặc Synaptic. Hoặc sử dụng hoàn thành tab apt-getđể khám phá lệnh : sudo apt-get install imagemagick.
Scott Severance

Nhân tiện, tôi thực sự khuyên bạn nên xóa tất cả các lần thử trước để cài đặt hình ảnh trước khi bạn cố gắng cài đặt bằng phương pháp của tôi. Nếu không, bạn có thể kết thúc với xung đột.
Scott Severance

Mặc dù tôi đã xóa các lần thử trước nhưng tôi gặp lỗi khi xác định hình ảnh jpg, như thế này: sam @ ubfox: ~ / RubymineProjects / project / tmp $ xác định 1.jpg xác định: không giải mã ủy nhiệm cho định dạng hình ảnh này `1.jpg ' @ lỗi / const const.c / ReadImage / 550.
Samir Sabri

3

Lưu ý rằng no decode delegatelỗi có thể (khá khó hiểu) là do hình ảnh (hoặc một phần của nó) không tìm thấy tệp. Vì vậy, trước khi chạy để cài đặt lại hình ảnh, hãy kiểm tra identify -list formatconvert -list configurexem định dạng JPEG có được hỗ trợ hay không, và nếu có, vấn đề có thể sẽ ở một nơi khác.

Ví dụ, convert -resize 50% foo\ bar.jpgđã cho tôi một no decode delegate for this image formateror, nhưng convert -resize 50% 'foo bar.jpg'làm việc hoàn hảo.


1

Nếu bạn vừa cài đặt php5-fantick, hãy thử cài đặt gói hình ảnh đầy đủ. Điều này sẽ cài đặt tất cả các thư viện cần thiết, chẳng hạn như thư viện jpeg.

sudo apt-get install imagemagick

Sau đó khởi động lại máy chủ web của bạn để tải lại thư viện al:

sudo service apache2 restart

Giải mã JPEG bây giờ sẽ hoạt động mà không có lỗi.


0

bạn đã thử chưa

sudo apt-get cài đặt libjpeg62

Nếu lệnh trên không hoạt động, vui lòng đi qua liên kết sau.

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

Hãy cho em biết, nếu điều này hữu ích, chúc may mắn ... :)


Tôi đã thử giải pháp của bạn, tôi nhận được: Đọc danh sách gói ... Xong Xây dựng cây phụ thuộc Đọc thông tin trạng thái ... Xong libjpeg62 đã là phiên bản mới nhất. 0 nâng cấp, 0 mới cài đặt, 0 để gỡ bỏ và 6 không nâng cấp. Nhưng, tôi vẫn gặp lỗi khi xác định hình ảnh jpg: sam @ ubfox: ~ / RubymineProjects / project / tmp $ xác định 1.jpg xác định: không giải mã ủy nhiệm cho định dạng hình ảnh này `1.jpg '@ error / const const.c / ReadImage / 550.
Samir Sabri

được rồi, tôi tìm thấy cái này: blog.ericlamb.net/2008/11/ Hãy làm ơn, kiểm tra và cho tôi biết, cảm ơn bạn đã trả lời.
Rishi Kolvekar

Tôi vừa sửa nó trước khi đọc bình luận cuối cùng của bạn, cảm ơn, tôi có câu trả lời dưới đây
Samir Sabri

nghe hay đấy !!! :)
Rishi Kolvekar

0

| Cách dễ nhất | Tải xuống " Trình quản lý gói Synaptic " từ trung tâm phần mềm. -> đã xóa các gói libjpeg cũ hơn * -> cài đặt lại libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

PS: Tôi đã nhận được cùng một lỗi. Tôi phải mất 2 ngày để được giải quyết. Lỗi của tôi khi tôi đang cố hiển thị hình ảnh jpg:

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

Sau đó, tôi tải xuống " Trình quản lý gói Synaptic " từ trung tâm phần mềm. -> đã xóa các gói libjpeg cũ hơn * -> cài đặt lại libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

(* trình quản lý gói synaptics sẽ hiển thị phụ thuộc với gói khác, chỉ xóa các gói libjpeg độc lập cũ hơn)

Sau đó tôi có thể mở hình ảnh JPEG mà không sợ lỗi.

Hy vọng nó giúp :)

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.