Xử lý hàng loạt hình ảnh tif? Chuyển đổi .tif thành .jpeg


41

Tôi đang cố gắng chuyển đổi hàng loạt các .tiftập tin. Tôi thấy phatch có thể trông giống như một ứng cử viên tốt nhưng tôi đang chạy Ubuntu 11.04. Có vẻ như họ không có .debphiên bản của tôi.

Bất cứ ai cũng có bất kỳ lựa chọn thay thế nào cho phatch hoặc bất kỳ đề xuất nào khác để nhanh chóng chuyển đổi hàng loạt tifsang jpegtệp.

Tôi đang tìm kiếm một giải pháp không phải Photoshop (ala Wine).

Câu trả lời:


75

Dễ dàng. Cài đặt ImageMagick :

sudo apt-get install imagemagick

Cách sử dụng đơn giản nhất là:

convert File.tif File.jpg

Nó là thông minh và đi bằng phần mở rộng tập tin của bạn.

Bây giờ, để thực hiện chuyển đổi hàng loạt, chúng ta sẽ sử dụng một vòng lặp.

cd vào thư mục chứa tập tin tif của bạn.

sau đó:

for f in *.tif; do  echo "Converting $f"; convert "$f"  "$(basename "$f" .tif).jpg"; done

Đọc cũng như:

for f in *.tif
do  
    echo "Converting $f" 
    convert "$f"  "$(basename "$f" .tif).jpg" 
done

Nên làm vậy!

Ngoài ra, khi bạn chuyển đổi tất cả các tệp và xác minh tính toàn vẹn của jpg mới, chỉ cần chạy rm *.tiftrong thư mục đó để xóa tất cả các tệp .tif cũ của bạn. Tuy nhiên, hãy cẩn thận với các dấu sao, không thêm dấu cách sau *hoặc bạn sẽ xóa tất cả các tệp trong thư mục.

Mẹo: Nếu bạn có một thư mục chứa các thư mục con chứa các hình ảnh này. Bạn có thể sử dụng vòng lặp này để tìm tất cả các tệp .TIF trong thư mục đó:

for f in $(find -name *.tif); do ...; done

Đây có phải là để in Converting filename.tifhay Converting filename?
sodiumnitrate

1
@sodiumnitrate nó sẽ nói "Chuyển đổi tên tệp.tif". các basenamelệnh có 2 đối số, ví dụ basename file.tif .tifsẽ trở lại "hồ sơ" tước phần mở rộng .tif đi. Bạn có thể sửa đổi vòng lặp để nói "Chuyển đổi filename.tif thành filename.jpg" với cùng một lệnh basename, nếu bạn muốn.
Matt

findĐối số đầu tiên của shoud là đường dẫn, vì vậy dòng cuối cùng sẽ là for f in $(find . -name *.tif); do ...; done(vì chúng ta đã cded trong thư mục trước đó). Tôi đã thử chỉnh sửa câu trả lời của @ Matt nhưng các chỉnh sửa phải có ít nhất 6 ký tự vì một số lý do.
mrtnmss

Cảm ơn bạn ..................................... làm việc
balaji

22

Tôi đã tìm thấy câu hỏi này trong khi cố gắng tự làm nó, để tham khảo trong tương lai bạn cũng có thể làm nó như thế này:

convert *.tiff -set filename: "%t" %[filename:].jpg

hoặc đặt nó trong thư mục con

mkdir jpg
convert *.tiff -set filename: "%t" jpg/%[filename:].jpg

1
Yay để xử lý tên tệp tích hợp.
beerbajay

Điều này làm việc rất tốt cho tôi với các tập tin png là tốt. Tuy nhiên, hành vi của pdf là khác nhau.
wdkrnls 28/03/2015

Tôi rất thích thấy điều này hoạt động, tuy nhiên, điều này đã báo cáo Lỗi Bus trên ImageMagick 6.6.9-7 2014-03-06 Q16 (OpenMP) trên Ubuntu 64. Câu trả lời được chấp nhận hoạt động tốt.
TFuto

Một lời cảnh báo: Điều này đã đóng băng cho tôi toàn bộ hệ thống (Gnome 3) và tôi đã phải tắt máy tính
0__

2

Imagemagick sẽ có thể chuyển đổi chúng. Nó là một gói các chương trình dòng lệnh, nếu bạn ổn với điều đó.

Một phần trong số đó là chuyển đổi -

người đàn ông chuyển đổi:

chuyển đổi - chuyển đổi giữa các định dạng hình ảnh cũng như thay đổi kích thước hình ảnh, làm mờ, cắt, khử nhiễu, hòa sắc, vẽ, lật, nối, lấy mẫu lại, và nhiều hơn nữa.


1
Câu trả lời của Matt thực sự hữu ích hơn nhiều
marto

1
Vâng Bạn đang ở đó.
chrisjlee

1

Nếu bạn thích một ứng dụng GUI, bạn có thể cài đặt Phatch thông qua các kho lưu trữ thông thường. Chỉ cần mở Trung tâm phần mềm Ubuntu và tìm kiếm nó. Tôi không ở vào ngày 11.04 nữa nhưng tôi đã cài đặt lại rồi.


1

Các câu trả lời ở trên sử dụng *.tifcho lựa chọn tif, nhưng điều này sẽ trả về lỗi nếu bạn có quá nhiều tệp trong thư mục làm việc hiện tại của bạn. Một cách giải quyết đơn giản là sử dụng tập lệnh python để chuyển đổi từng tệp trong cwd:

import glob, os

for c, i in enumerate(glob.glob('ecco_images/*')):
  print(' * converting', i)
  os.system('convert ' + i + ' ' + i.replace('.TIF','.jpg'))

for f in *.tifsẽ không lỗi, nhưng convert *.tifsẽ.
muru

À, cảm ơn @muru! Tôi nghĩ rằng việc mở rộng * sẽ giống nhau ở cấp độ os, nhưng tôi rất vui khi được sửa chữa.
duhaime

0

Tôi muốn thêm vào câu trả lời của @ Matt rằng nếu bạn muốn các tệp được lưu trong các thư mục con, bạn có thể thực hiện như sau:

find -name *.tif | while read f; do echo "Converting $f"; convert "$f"  "${f%.*}".jpg; done

Điều này cũng xử lý vấn đề nếu đường dẫn tệp / tên của bạn có khoảng trắng trong đó


0

Giải pháp GUI GIMP bằng cách sử dụng Plugin Batch Process

Hoạt động trong Ubuntu 18.04 bằng GIMP 2.8


Cửa sổ hộp thoại đầu vào bộ xử lý hàng loạt

Cửa sổ hộp thoại nhập quy trình hàng loạt


Cửa sổ hộp thoại đầu ra bộ xử lý hàng loạt

Cửa sổ hộp thoại đầu ra bộ xử lý hàng loạt


hướng dẫn cài đặt

1 - Tải xuống tệp plugin hiện tại từ DBP - Trang chủ Bộ xử lý hàng loạt của David về máy tính để bàn của bạn. Đối với Ubuntu 18.04 làm hỏng Gimp 2.8, tệp hoạt động với tôi là dbpSrc-1-1-9.tgz .

2 - Lấy một số tệp phát triển GIMP:

sudo apt-get install libgimp2.0-dev gcc cpp g++

3 - Chuyển sang thư mục mã nguồn hệ thống:

cd /usr/src/

4 - Trích xuất plugin từ Máy tính để bàn của bạn vào thư mục mã nguồn riêng. Thay thế [tên người dùng] bằng tên người dùng hiện tại của bạn và sử dụng tên tệp mà bạn đã tải xuống ở trên trong bước 1:

sudo tar -xvzf /home/[username]/Desktop/dbpSrc-1-1-9.tgz

5 - Thay đổi thư mục mã nguồn của plugin:

cd dbp-1.1.9

6 - Biên dịch plugin:

sudo make

7 - Cài đặt plugin:

sudo make install

8 - Bắt đầu GIMP và bạn sẽ tìm thấy plugin trong Menu-> Bộ lọc-> Quy trình hàng loạt ..

Quá trình hàng loạt GIMP .. Đường dẫn menu

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.