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
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.
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.
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
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.
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
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
Đâ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
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ý.