Cách tự động hóa GIMP bằng tập lệnh

Chỉnh sửa ảnh có thể liên quan đến việc lặp lại nhiều lần một quá trình, đặc biệt là khi bạn đang làm việc với một album ảnh lớn. Nếu bạn sẵn sàng làm việc với các tập lệnh, bạn có thể sử dụng GIMP để tự động hóa một số hành động, nhằm tiết kiệm thời gian và công sức.

Việc viết các tập lệnh bằng Python trong GIMP không hề dễ dàng, nhưng nó rất bổ ích nếu bạn muốn học hỏi và tích lũy kinh nghiệm. Dưới đây là cách bắt đầu bằng một vài tập lệnh rất cơ bản.

Tạo một tập lệnh Python

Trước khi bắt đầu thực hiện dự án của mình một cách nghiêm túc, bạn cần đặt ra một số nền tảng. Trước tiên, mở trình chỉnh sửa văn bản, sau đó sao chép và dán đoạn code bên dưới:

#!/usr/bin/python

from gimpfu import *

def first_plugin(timg, tdrawable):
print "Hello, world!"

register(
"hello_world",
"Presents a Hello, World! message",
"Presents a Hello, World! message",
"Brad Jones",
"Brad Jones",
"2017",
"<Image>/Image/Hello, World!",
"RGB*, GRAY*",
[],
[],
first_plugin)

main()

Dưới đây là tóm tắt ngắn gọn về những gì đang diễn ra ở đây. Hai dòng đầu tiên khởi tạo tập lệnh và cung cấp cho bạn quyền truy cập vào một số thư viện hữu ích. Phần code sau def first_plugin chứa các chỉ dẫn mà bạn cung cấp cho GIMP. Thông tin theo sau từ register là mọi thứ mà GIMP cần biết về plugin.

Đây là thông tin bạn cần cung cấp cho GIMP để đăng ký tập lệnh của mình:

  • Name: Tên của lệnh (ví dụ: hello_world)
  • Blurb: Mô tả ngắn gọn về lệnh (ví dụ: Trình bày thông báo Hello, World!)
  • Help: Thông báo trợ giúp được hiển thị (ví dụ: Trình bày thông báo Hello, World!)
  • Author: Người đã tạo tập lệnh (ví dụ: Brad Jones)
  • Copyright: Chủ sở hữu bản quyền (ví dụ: Brad Jones)
  • Date: Ngày tập lệnh được tạo (ví dụ: 2017)
  • Label: Cách mà tập lệnh sẽ được tham chiếu trong menu (ví dụ: <Image>/Image/Hello, World!)
  • Parameters: Các tham số được đính kèm với plugin (ví dụ: [] - không có tham số nào trong trường hợp này)
  • Results: Kết quả từ plugin (ví dụ: [] - không có kết quả nào trong trường hợp này)
  • Function: Tên được sử dụng để chỉ hành động trong code của bạn (ví dụ: first_plugin)

Cuối cùng, bạn cần gọi lệnh main().

Lưu tập lệnh của bạn và chọn All Files từ menu Save as type. Đảm bảo bao gồm phần mở rộng .py trong tên file của bạn.

Lưu file

Tiếp theo, đặt file này vào thư mục plug-in của GIMP, có thể tìm thấy trong Windows tại Program Files > GIMP 2 > lib > gimp > 2.0 (hoặc ~\Library\Application Support\GIMP\2.8\scripts trên máy Mac). Bạn có thể cần quyền admin để thực hiện việc này.

Khởi tạo GIMP và mở menu Image. Bạn sẽ thấy Hello, World! ngay ở phía dưới.

Hello, World!

Bây giờ là lúc để làm cho tập lệnh của bạn hữu ích hơn một chút.

Thêm một số chức năng

Bây giờ, bạn sẽ phải viết lại tập lệnh của mình để nó thực sự có thể làm một nhiệm vụ gì đó thực tế. Mở lại file văn bản một lần nữa, sau đó sao chép và dán đoạn code sau đây:

#!/usr/bin/env python

from gimpfu import *

def test_script(customtext, font, size):
img = gimp.Image(1, 1, RGB)
layer = pdb.gimp_text_fontname(img, None, 0, 0, customtext, 10, True, size, PIXELS, font)
img.resize(layer.width, layer.height, 0, 0)
gimp.Display(img)
gimp.displays_flush()

register(
"python_test",
"TEST",
"TEST",
"Brad Jones",
"Brad Jones",
"2017",
"TEST",
"",
[
(PF_STRING, "customtext", "Text string", 'Scripting is handy!'),
(PF_FONT, "font", "Font", "Sans"),
(PF_SPINNER, "size", "Font size", 100, (1, 3000, 1)),
],
[],
test_script, menu="<Image>/File/Create")

main()

Điều này phức tạp hơn một chút so với tập lệnh Hello, World!, nhưng chúng có cấu trúc rất giống nhau. Đầu tiên, hãy tạo một hình ảnh.

img = gimp.Image(1, 1, RGB)

Sau đó, bạn thêm văn bản dựa trên các thông số do người dùng cung cấp.

layer = pdb.gimp_text_fontname(img, None, 0, 0, customtext, 10, True, size, PIXELS, font)

Tiếp theo, bạn thay đổi kích thước hình ảnh theo kích thước của văn bản.

img.resize(layer.width, layer.height, 0, 0)

Cuối cùng, bạn yêu cầu GIMP hiển thị hình ảnh trên màn hình.

gimp.Display(img)
gimp.displays_flush()

Tất cả những gì còn lại cần làm là thêm thông tin đăng ký mà GIMP cần, với việc bổ sung một số cài đặt thông số mà bạn chưa thực hiện trước đó.

[
(PF_STRING, "customtext", "Text string", 'Scripting is handy!'),
(PF_FONT, "font", "Font", "Sans"),
(PF_SPINNER, "size", "Font size", 100, (1, 3000, 1)),
],

Lưu file này giống như bạn đã làm với tập lệnh Hello, World!, di chuyển nó vào thư mục plug-ins và khởi động lại GIMP. Đi tới File > Create > TEST để thử plugin của bạn.

Test

Bạn sẽ thấy một cửa sổ nơi bạn có thể đặt các thông số khác nhau.

Thông số khác

Nhấp OK và bạn sẽ tạo ra một hình ảnh trông như thế này.

Nhấp Ok

Điều này minh họa cho việc bạn có thể sử dụng tập lệnh trong GIMP để tự động hóa một quá trình, bao gồm một vài hành động khác nhau. Bây giờ, hãy viết một tập lệnh nhằm tạo ra những thay đổi cho một hình ảnh mà bạn đã mở.

Đảo ngược một layer

Một khi bạn cảm thấy thoải mái với việc lập trình bằng Python trong GIMP, bạn có thể tự động hóa tất cả các loại chỉnh sửa cho hình ảnh của mình. Tuy nhiên, chúng ta sẽ bắt đầu càng đơn giản càng tốt, bằng cách triển khai một tập lệnh để đảo ngược màu của layer hiện tại.

Để bắt đầu, hãy mở lại trình chỉnh sửa văn bản, sau đó sao chép và dán tập lệnh sau:

#!/usr/bin/env python

from gimpfu import *

def invert_current_layer(img, layer):
pdb.gimp_invert(layer)

register(
"python_fu_invert_current_layer",
"Invert layer",
"Invert colors in the current layer",
"Brad Jones",
"Brad Jones",
"2017",
"<Image>/Filters/Custom/Invert current layer",
"*",
[],
[],
invert_current_layer)

main()

Điều này là kết quả từ tập lệnh mà bạn đã tạo trước đó. Hai dòng đầu tiên của code chỉ định một số nền tảng, và một số dòng cuối cùng phụ trách việc đăng ký. Đây là phần quan trọng:

def invert_current_layer(img, layer):
pdb.gimp_invert(layer)

Bạn đang xác định quy trình của mình, cho GIMP biết bạn sẽ tham khảo những thành phần nào, sau đó sử dụng pdb.gimp_invert để hướng dẫn chương trình điều chỉnh màu sắc. Lưu file này ở định dạng .py, thêm nó vào thư mục plug-ins, sau đó mở GIMP để kiểm tra xem nó có hoạt động hay không.

Mở GIMP

Điều hướng đến Filters > Custom > Invert current layer.

Điều hướng

Bạn sẽ nhận được một kết quả tương tự như ở trên. Tất nhiên, thực hiện một hoạt động đảo ngược trong GIMP tương đối dễ dàng, nhưng đây chỉ là điểm khởi đầu. Điều tuyệt vời khi viết tập lệnh của riêng mình là bạn có thể tạo ra một thứ hoàn toàn phù hợp với mình.

Các bước tiếp theo để lập trình cho GIMP

Khi bạn đã hiểu các khái niệm cơ bản về lập trình trong GIMP, đã đến lúc bắt đầu thử nghiệm. Hãy suy nghĩ về loại quy trình bạn thường làm rất nhiều lần và điều đó sẽ hữu ích nếu được tự động hóa. Sau đó, bạn sẽ đến với phần khó khăn nhất: Tìm ra cách sử dụng code để hiện thực hóa những ý tưởng đó.

May mắn thay, GIMP cung cấp cho bạn một số hỗ trợ. Điều hướng đến Help > Procedure Browser và bạn sẽ có thể truy cập danh sách tất cả các quy trình bạn có thể sử dụng.

Lập trình GIMP

Procedure Browser không chỉ liệt kê các quy trình mà còn cung cấp cho bạn thông tin về các tham số bạn cần cung cấp trong code của mình.

Bạn có thể cuộn qua toàn bộ danh sách các quy trình hoặc sử dụng thanh tìm kiếm để thu hẹp trường. Sau đó, chỉ cần chèn tên quy trình và tham số vào tập lệnh của bạn.

Procedure Browser

Thông tin này sẽ là vô giá khi bạn làm việc trên các tập lệnh của mình. Bắt đầu với một số công cụ đơn giản, trước khi bạn thực hiện một số quy trình tự động thực sự hữu ích!

Bạn có cần trợ giúp cho việc lập trình với GIMP không? Hay bạn có một mẹo nào muốn chia sẻ với những người dùng khác không? Dù bằng cách nào, tại sao không để lại ý kiến của bạn trong phần bình luận bên dưới nhỉ?

Xem thêm:

Thứ Sáu, 28/09/2018 20:27
52 👨 128