Nếu bạn thấy mình nén lại và thay đổi kích thước ảnh ngày nào cũng làm, ví dụ, dùng cho độ phân giải cụ thể trên trang blog, tại sao không biến thủ tục thành việc một cú nhấp chuột? Bạn có thể làm bằng cách khai thác hỗ trợ Thunar cho hàm bên ngoài.
Chúng ta nên lưu ý bạn có thể làm điều tương tự với bất kỳ "programmable" file managers nào, như Konqueror.
Logic đằng sau việc này: khi bạn có file được chọn, Thunar "ánh xạ" đường dẫn đầy đủ tới tham số – "%f". Bằng cách tạo Custom Action cho Thunar, trong trường hợp này, lệnh ImageMagick, chúng ta có thể dùng ImageMagick nén và resize ảnh trực tiếp trong Thunar.
Cài đặt Thunar và ImageMagick
Dùng giải pháp quản lý gói/package yêu thích để tìm và cài Thunar và ImageMagick nếu chưa cài trong bản phân phối. Cho bản phân phối dựa trên Debian, làm với:
sudo apt-get install thunar imagemagick
Vì hầu hết bản phân phối đi kèm ứng dụng GUI cho phép truy cập mọi thứ trong kho, thường trình bày như "App Store", tìm kiếm chương trình và nhấp "Install" có thể là lựa chọn tốt hơn cho người ghét terminal.
Ghé trang Option Summary của ImageMagick
Mặc dù chúng ta chỉ nói về thu nhỏ và lưu file ảnh đã chọn thành JPG nén, ImageMagick cung cấp chục tùy chọn khác thay đổi file ảnh. Ghé trang Options Summary chính thức để xem tất cả nó làm được. Dùng những tùy chọn đó, bạn có thể mở rộng những gì chúng ta xây dựng, hoặc tạo phiên bản phức tạp hơn của lệnh hoặc lệnh khác thao tác ảnh theo cách khác.
Tạo thư mục test và copy ảnh vào đó
Đừng bao giờ tác động lên file gốc – một sai lầm, và chúng sẽ bị thay đổi hoặc, tệ hơn, mất mãi. Tạo thư mục test đâu đó – như trong thư mục Pictures – và copy file vào đó dùng làm… nhỉ… con thỏ thử nghiệm! Khi ở đó, nhấp chuột phải vào không gian trống hiển thị danh sách file Thunar và chọn terminal từ menu.
Tìm tỷ lệ nén/chất lượng tối ưu
Bước tiếp theo là tìm tỷ lệ nén/chất lượng tốt nhất cho bạn. Mỗi người khác nhau, nên trông tốt cho chúng tôi có thể thấy chất lượng quá thấp cho bạn. Nó cũng phụ thuộc vào nội dung ảnh: mèo con trong ảnh test, và ảnh chụp chung, có thể chịu nén lớn/chất lượng thấp hơn minh họa sắc nét. Những cái đó, lần lượt, có thể nén nhiều hơn screenshot nơi văn bản phải dễ đọc.
Làm vài test run cho đến khi tìm giá trị tối ưu cho bạn, dùng lệnh:
magick INPUT_FILE -quality QQ OUTPUT_FILE
Trong đó INPUT_FILE là ảnh gốc, OUTPUT_FILE kết quả nén và chuyển đổi, và QQ số từ 1-100 – càng cao, chất lượng càng tốt và nén càng ít.
Thay đổi kích thước hoặc thu nhỏ ảnh
Resize và scale down khác nhau, vì resize cũng có thể scale up. ImageMagick cho phép resize ảnh bằng lệnh:
magick INPUT_FILE -resize 1920x1200 OUTPUT_FILE
Ở đây dùng độ phân giải 1920 x 1200. Nếu nghe lạ, vì chúng tôi dùng màn hình 16:10 thay vì 16:9, sẽ có 1920 x 1080 điển hình. Bất kỳ số nào bạn chọn, ImageMagick mặc định giữ tỷ lệ ảnh và chỉ scale một chiều để tránh méo mó. Tuy nhiên, điều này cũng sẽ "scale up" ảnh nhỏ hơn, và chúng ta không muốn vì mục tiêu giảm kích thước ảnh cho dùng online. Bạn có thể bảo ImageMagick chỉ resize nếu ảnh lớn hơn độ phân giải đã chọn. Chỉ thêm > sau độ phân giải.
magick INPUT_FILE -resize 1920x1200> OUTPUT_FILE
Thêm lệnh vào Thunar
Khi đã tìm tỷ lệ nén/chất lượng mong muốn và đặt độ phân giải mục tiêu thu nhỏ, copy lệnh từ terminal vào clipboard. Từ Thunar, chọn "Edit > Configure custom actions …"
Nhập tên cho action và, nếu muốn, mô tả. Sau đó, dán lệnh ImageMagick đã copy vào trường Command.
Chọn tên file input trong lệnh và đổi thành "%f", sau đó chọn tên file output và đổi thành "%f_output".
Lệnh không hoạt động nếu không đặt điều kiện xuất hiện. Chuyển tab Appearance Conditions và chọn "Image Files" để lệnh xuất hiện khi bất kỳ file ảnh nào được chọn. Nhấp OK và custom action sẽ lưu cho dùng sau.
Thử custom action
Custom action sẽ xuất hiện khi nhấp chuột phải vào file ảnh. Chọn nó, file mới nén và thu nhỏ sẽ xuất hiện cùng thư mục với "_output" sau tên. Rất tiếc, Thunar không đủ linh hoạt để chỉ parse "basename" cho ImageMagick ("để bỏ phần mở rộng"), nên phải làm thủ công. Có cách tránh, nhưng phải tạo script phức tạp hơn.
Tuy nhiên, đó là câu chuyện cho lần sau. Cho đến lúc đó, tại sao không tạo thêm vài phiên bản khác của lệnh, với mức nén hoặc độ phân giải mục tiêu khác cho mọi nhu cầu? Chúng chỉ cách một nhấp chuột phải!