Hướng dẫn thay đổi kích thước, định dạng và chỉnh sửa ảnh trên Linux bằng ImageMagick

Quản Trị Mạng - ImageMagick là một bộ ứng dụng cho phép thao tác với ảnh trên giao diện dòng lệnh. Phần mềm có thể nhanh chóng thực hiện các xử lý trên ảnh từ một đầu cuối (terminal), tiến hành xử lý khối nhiều ảnh hay được kết hợp vào bash script. Bài viết giới thiệu cho người dùng cấu trúc lệnh của ImageMagick, các thao tác cơ bản, cách kết hợp các thao tác và tiến hành xử lý khối nhiều bức ảnh.

Cài đặt

ImageMagick không được cài mặc định trên Ubuntu. Để cài đặt phần mềm, sử dụng câu lệnh sau:

sudo apt-get install imagemagick

Thay đổi định dạng ảnh

Lệnh convert lấy một bức ảnh, thao tác trên nó và lưu bức ảnh với tên file mà người dùng quy định. Một trong những công việc cơ bản nhất người dùng có thể làm là thay đổi định dạng ảnh. Câu lệnh này lấy một file PNG tên là “howtogeek.png” theo đường dẫn và tạo một bức ảnh JPEG từ đó:

convert howtogeek.png howtogeek.jpg

lệnh convert

Người dùng cũng được tự quy định mức nén cho ảnh JPEG:

convert howtogeek.png -quality 95 howtogeek.jpg

Mức nén phải nằm trong khoảng từ 1 đến 100. ImageMagick sẽ sử dụng luôn mức nén của ảnh đầu vào nếu có. Nếu không, ImageMagick mặc định mức nén bằng 92.

Thay đổi kích thước ảnh

Câu lệnh convert cũng giúp thay đổi kích thước ảnh nhanh chóng. Câu lệnh sau đây yêu cầu ImageMagick định cỡ ảnh với chiều rộng là 200 pixel và 100 pixel chiều cao.

convert example.png -resize 200×100 example.png

Do đã sử dụng tên giống nhau cho hai file ảnh vì thế ImageMagick sẽ ghi đè file ảnh mới lên file ảnh gốc.

thay kích thước ảnh

ImageMagick sẽ cố gắng giữ nguyên hệ số co (aspect ratio) khi câu lệnh trên được sử dụng. Nó sẽ thay đổi bức ảnh sao cho phù hợp với kích thước 200x100 nhưng trên thực tế không được chính xác hoàn toàn. Nếu muốn ép bức ảnh vào một kích cỡ quy định trước, người dùng chỉ cần thêm dấu chấm than sau kích thước ảnh. Nhưng điều này sẽ ảnh hưởng đến hệ số co.

convert example.png -resize 200×100! example.png

Người dùng cũng có thể quy định độ rộng hay độ cao và ImageMagick sẽ thay đổi kích thước bức ảnh theo độ rộng hay độ cao đó và vẫn giữ được hệ số co. Để thay đổi độ rộng ảnh thành 200 ta dùng:

convert example.png -resize 200 example.png

câu lệnh sau sẽ thay đổi chiều cao ảnh thành 100:

convert example.png -resize x100 example.png

Xoay ảnh

ImageMagick cũng giúp xoay ảnh nhanh chóng. Câu lệnh dưới đây lấy một bức ảnh có tên howtogeek.jpg, xoay bức ảnh 90o và lưu bức ảnh được xoay là howtogeek-rotated.jpg:

convert howtogeek.jpg -rotate 90 howtogeek-rotated.jpg

Nếu tên file ảnh mới trùng với tên file gốc, ImageMagick sẽ tiến hành ghi đè lên file ảnh gốc.

xoay ảnh

Sử dụng các hiệu ứng

ImageMagick có thể áp nhiều hiệu ứng vào một bức ảnh. Chẳng hạn, câu lệnh sau thêm hiệu ứng “charcoal” vào ảnh:

convert howtogeek.jpg -charcoal 2 howtogeek-charcoal.jpg

hiệu ứng charcoal

Câu lệnh tạo hiệu ứng vẽ chì nghệ thuật cho bức ảnh. “2” trong câu lệnh là mức độ tác động của hiệu ứng. Số càng lớn, mức độ tác động càng rõ ràng.

hiệu ứng impode

Câu lệnh sau tạo hiệu ứng “Impode” với mức tác động bằng 1:

convert howtogeek.jpg -implode 1 howtogeek-imploded.jpg

impode

Hiệu ứng “impode” làm cho bức ảnh như bị xoáy vào tâm ảnh.

Kết hợp các thao tác

Tất cả các thao tác này có thể kết hợp lại. Với câu lệnh đơn, người dùng có thể thay đổi kích thước ảnh, xoay, tạo hiệu ứng và chuyển đổi sang định dạng ảnh khác:

convert howtogeek.png -resize 400×400 -rotate 180 -charcoal 4 -quality 95 howtogeek.jpg

kết hợp nhiều hiệu ứng

Đây chỉ là những thao tác cơ bản ban đầu mà người dùng dễ dàng thực hiện được trên ImageMagick. Ngoài ra, còn có nhiều thao tác khác cũng có thể được kết hợp lại.

Xử lý khối

Người dùng nên lợi dụng giao diện Bash để nhanh chóng thực hiện xử lý khối nhiều bức ảnh. Ví dụ như câu lệnh sau sẽ lấy tất cả các file PNG từ đường dẫn, xoay và lưu các bức ảnh đã xoay lại.

for file in *.png; do convert $file -rotate 90 rotated-$file; done

xử lý khối

Ngoài ra, chúng ta cũng có thể dễ dàng sửa đổi câu lệnh để thực hiện các thao tác khác cũng như dễ dàng kết hợp các câu lệnh xử lý khối vào Bash shell script để tự động hóa thao tác xử lý.

Thứ Sáu, 23/03/2012 08:36
31 👨 3.147
0 Bình luận
Sắp xếp theo
    ❖ Tổng hợp