1 điểm bởi GN⁺ 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Tổng hợp toàn bộ quy trình vẽ trên 9front, xoay quanh paint(1), kết nối từ chọn thiết bị nhập đến quản lý canvas, thao tác ảnh và xuất ra ngoài
  • Công việc được thực hiện trong định dạng nội bộ image(6) của 9front; sau khi vẽ bằng paint(1), kết quả được điều chỉnh bằng page(1), crop(1), vcrop(1), resize(1), rotate(1)
  • paint(1) không có cảm biến áp lực, layer, cắt/dán, nên người dùng phải tự quản lý vùng làm việc và màu sắc như trên giấy
  • Bài viết đề cập đến chuột, ngón tay, bút, tablet rời, đầu vào drawterm/VNC; tuy nhiên nút trên bút chỉ mô phỏng cú nhấp chuột, nên bố trí bàn phím và chuột ở gần là thực tế hơn
  • Để chia sẻ ra bên ngoài, chuyển đổi sang PNG là phù hợp; PNG hoặc JPG không phải đối tượng chỉnh sửa trực tiếp của paint(1), crop(1), vcrop(1), nên nếu cần phải đổi lại sang định dạng image của 9front

Cấu hình cơ bản để vẽ trên 9front

  • Để vẽ, cần có “công cụ vẽ” và “bề mặt để vẽ”; trên 9front có thể dùng nhiều phương thức nhập, không chỉ thiết bị bút thật
  • Nếu là máy tính chạy 9front thì có thể làm theo How to draw; nếu muốn một thiết bị vẽ trực tiếp lên màn hình, laptop 2-in-1 hỗ trợ Wacom là phù hợp
  • Danh sách các thiết bị thực tế hoạt động tốt là các dòng ThinkPad sau

Đặc điểm theo từng thiết bị nhập

  • Vẽ bằng chuột là cách cũ, nhưng có lợi thế là tương thích với mọi máy tính có chuột
  • Nhập bằng ngón tay: chạm màn hình mô phỏng nhấp chuột trái, nhưng không thay thế được các kiểu nhấp khác, nên vẫn phải để chuột ở gần
  • Với tablet rời, sản phẩm có màn hình có thể không hoạt động trên 9front, còn sản phẩm không màn hình có thể hoạt động
    • Thiết bị được khuyến nghị là GAOMON S620, hoạt động tốt theo kiểu plug-and-play trên 9front
    • Wacom CTL-672 hoạt động như touchpad tọa độ tương đối
    • Wacom CTL-490 không hoạt động
    • Thông tin liên quan có tại [fqa] 3.2.4 - Tablet Digitizers
  • Rất khó vẽ đúng nghĩa chỉ bằng bàn phím, nhưng làm việc với paint(1) vẫn cần bàn phím
    • Trên tablet PC hoặc môi trường đặc biệt khó tiếp cận bàn phím vật lý, có thể dùng bàn phím ảo bitsy/keyboard
    • Ví dụ chạy: rio -k 'bitsy/keyboard -n'
  • Dùng drawterm/VNC có thể kết nối đến máy tính 9front từ xa hoặc ảo hóa để dùng nhiều thiết bị nhập đa dạng hơn
    • Có thể vẽ bằng ngón tay trên điện thoại Android, vẽ bằng chuột trên Linux và MacOS, hoặc dùng trên Windows các thiết bị nhập mà 9front không hỗ trợ trực tiếp
    • Trang liên quan là drawterm.9front.org

Định dạng image(6) và tiền đề của paint(1)

  • Việc vẽ, cắt và thao tác ảnh của 9front được thực hiện trên tệp định dạng nội bộ image(6)
  • Trong lúc tạo tranh không cần quá bận tâm đến định dạng, nhưng muốn chia sẻ ra bên ngoài thì phải chuyển đổi sang định dạng khác
  • Tên tệp được ví dụ theo kiểu file.pic, nhưng có thể đặt tên tùy ý
  • Hướng dẫn này chỉ đề cập đến paint(1) trong số nhiều chương trình vẽ của 9front
  • Cần tiếp cận paint(1) theo cách gần với việc vẽ bằng giấy, mực và màu hơn là một chương trình vẽ kỹ thuật số thông thường

Giới hạn và thao tác cơ bản của paint(1)

  • Bút và nút trên tablet mô phỏng đầu vào chuột; trong hướng dẫn, tất cả đều được diễn đạt như thao tác chuột
    • Trạng thái lơ lửng trên màn hình là di chuyển chuột
    • Chạm vào bề mặt là nhấp trái hoặc giữ nhấn
    • Cây bút lý tưởng có 2 nút dành cho nhấp giữa và nhấp phải
    • Nếu chỉ có nút nhấp phải, có thể giữ Shift rồi bấm nút để mô phỏng nhấp giữa
  • paint(1) và 9front không hỗ trợ cảm biến áp lực
  • Cũng không có layer hay cắt/dán; những gì vẽ ra sẽ trở thành kết quả
  • Lưu và mở được thực hiện bằng phím
    • w: lưu tệp
    • r: mở hoặc đọc lại tệp
    • |: pipe canvas hiện tại vào một lệnh để chuyển đổi
    • < command: đọc kết quả lệnh vào paint(1) và thay thế canvas hiện tại
    • > command: chuyển canvas hiện tại cho lệnh để ghi ra tệp
  • Ví dụ thao tác như sau
    • | rotate -u: xoay canvas
    • < crop -i -50 glenda.pic: mở glenda.pic sau khi thêm viền đen 50 pixel
    • > crop -i -50 | rotate -r 90 > modified_glenda.pic: thêm viền cho canvas hiện tại, xoay 90 độ rồi lưu

Canvas được xác định bởi phạm vi có pixel được đặt

  • Trong paint(1), canvas là vùng hình chữ nhật chứa bức vẽ
  • Cửa sổ trắng ngay sau khi bắt đầu là một tệp trống; chỉ sau khi vẽ hoặc xóa pixel đầu tiên thì canvas mới được tạo
  • paint(1) xem pixel nằm xa nhất là ranh giới của canvas
    • Kích thước cửa sổ không quyết định kích thước canvas
    • Pixel đã bị tẩy bằng cục tẩy cũng được xem là đã đặt pixel
  • Nên coi kích thước cửa sổ paint(1) ban đầu như canvas làm việc, vẽ dấu cắt ở các góc rồi làm việc
  • Nếu cần tranh có kích thước chính xác, phải tạo canvas kích thước cố định bằng quy trình riêng, rồi sau khi làm xong tính toán để cắt hoặc loại bỏ lề

Các công cụ chính của paint(1)

  • Chọn công cụ bằng cách nhấp chuột trái vào thanh công cụ phía dưới
  • Màu sắc
    • Chọn màu bằng nhấp trái
    • Nhấp phải vào màu trên thanh công cụ để nhập mã thập lục phân và thay đổi palette
    • paint(1) không nhớ palette sau khi thoát, nên mỗi lần mở cửa sổ mới phải thay đổi lại
    • Nếu muốn dùng nhiều hơn 16 màu, có thể mở cùng một tệp tranh trong nhiều cửa sổ paint(1) và đồng bộ bằng wr
  • Cọ vẽ
    • Chọn kích thước cọ bằng 0-9 hoặc chuột trái, rồi kéo để vẽ
  • Tô màu
    • Dùng f, c, chuột trái, chuột giữa
    • Đổi vùng pixel liền nhau có cùng màu sang màu khác
    • Cũng dùng để đổi màu nền; màu nền là màu mà cục tẩy sẽ đổi sang
    • c xóa mọi thứ và đổi nền sang màu đã chọn, đưa tệp về trạng thái trống
  • Cục tẩy
    • Dùng 0-9, chuột giữa
    • Đổi vùng dưới con trỏ sang màu nền với cùng kích thước như cọ hiện tại
  • Đường thẳng và hình tròn
    • Đường thẳng dùng thước
    • Hình tròn được vẽ bằng cách lần theo vật phẳng tròn, hoặc vòng tròn đã vẽ trước bằng compa trên giấy can
  • Di chuyển, phóng to/thu nhỏ, hoàn tác
    • Giữ chuột phải và di chuyển để pan
    • Dùng -, + để phóng to/thu nhỏ, nhưng không thể thu nhỏ xa hơn mức zoom ban đầu
    • Esc đặt lại mức zoom và căn canvas vào giữa
    • u hoàn tác đoạn nét liên tục cuối cùng; ngay cả một đường dài cũng có thể bị chia thành nhiều bước undo

Layer giả và xóa theo màu

  • paint(1) không có layer, nhưng có thể tạo layer giả bằng cách phác thảo bằng một màu thực tế sẽ không dùng, rồi vẽ nét lên trên
  • Trong ví dụ, HotPink được dùng làm màu phác thảo, rồi chỉ xóa màu đó sau khi hoàn tất
  • Dùng tô màu thủ công hoặc cục tẩy chính xác có thể mất nhiều thời gian, nên cách dùng pico để thay một màu cụ thể bằng màu nền là hữu ích
  • Có thể lấy pico bằng lệnh sau
  • Phần giải thích liên quan có tại Image Manipulation on Plan 9 Using pico
  • Giá trị RGB thập phân của HotPink #ff5fd7255, 95, 215, và có kèm ví dụ chuyển đổi bằng pc(1)

page(1), crop(1), vcrop(1), resize(1), rotate(1)

  • page(1) là trình xem tài liệu, dùng để hiển thị nhiều định dạng ảnh, PDF, ebook, v.v.
    • Có thể xem tranh bằng page my_picture.pic
    • Nên tạo thói quen kiểm tra kết quả thao tác ảnh bằng page(1) trước khi ghi ra tệp
    • Trong page(1), cũng có thể nhấn w để lưu kết quả đang hiển thị thành tệp
  • Nếu tranh lớn hơn cửa sổ paint(1), có thể tạo cửa sổ page picture.file riêng và dùng fit width hoặc fit height như cửa sổ xem trước
  • vcrop(1) là công cụ cắt ảnh đồ họa
    • Chuột trái để pan
    • Chuột giữa để chọn công cụ cắt
    • Chuột phải để hiển thị các tùy chọn như lưu
    • Vì không phóng to được, công cụ này có giới hạn khi cần cắt vùng lớn hơn cửa sổ hoặc cắt chính xác từng pixel
  • crop(1) xóa hoặc thêm các hàng/cột pixel
    • crop -x 50 mypic.pic > mypic_crop.pic: cắt 50 pixel ở hai bên trái phải
    • crop -i -10 -b 255 255 255 mypic.pic: thêm viền trắng 10 pixel
  • resize(1) làm tranh lớn hơn hoặc nhỏ hơn
    • Để giữ tỷ lệ gốc, chỉ định một trong -x hoặc -y
    • Ví dụ: resize -n -y 245 mypic.pic > mypic_resized.pic
  • rotate(1) có thể xoay ảnh theo đơn vị 90 độ
    • rotate -r 90 my.pic > rotated.my.pic
    • rotate -ul > flipped.my.pic

Tạo canvas kích thước chính xác và chiến lược cắt

  • Nếu cần kích thước chính xác như 250x250, dùng quy trình tạo ảnh trống, đổi về kích thước mong muốn bằng resize(1), rồi mở bằng paint(1)
    • w empty_canvas.pic
    • resize -n -x 250 -y 250 empty_canvas.pic > empty_canvas_250x250.pic
    • cp empty_canvas_250x250.pic mypicture.pic
    • paint mypicture.pic
  • paint(1) không ngăn việc vẽ vượt ra ngoài ranh giới canvas; nếu vượt ranh giới, kích thước tranh sẽ mở rộng
  • Có ba lựa chọn
    • Không bận tâm đến nét vượt ranh giới, rồi cắt bằng tính toán sau khi làm xong
    • Thêm lề dư đều trước khi làm việc, rồi loại bỏ sau khi hoàn tất
    • Vẽ dấu cắt ở các góc và cắt sau
  • crop -r a b c d cắt bằng tọa độ tuyệt đối của ảnh; có thể kiểm tra tọa độ bằng dd -bs 128 -count 1
  • Với cách dùng lề, ví dụ thêm lề đỏ 25 pixel vào canvas trắng 250x250 để làm việc, rồi khi hoàn tất dùng crop -i 25 để loại bỏ và nhận kết quả đúng 250x250

Tracing và palette

  • Có thể lấy ảnh từ Internet, chuyển sang định dạng 9front, rồi làm sáng bằng pico để trace trong paint(1)
  • Sau khi trace đường nét bằng màu cụ thể như HotPink trong paint(1), có thể dùng pico để chỉ giữ màu đó và đổi phần còn lại thành trắng
  • Tài liệu liên quan đến palette có git.sr.ht/~amavect/makeu

Xuất ra ngoài và chia sẻ

  • Vì ảnh vẽ trên 9front về cơ bản là pixel art, nên nên chuyển sang PNG
  • Bài viết tóm lại rằng PNG luôn nhỏ hơn và sắc nét hơn JPG, đồng thời hiển thị đúng như trong paint(1)
  • Các định dạng khác như PNG hoặc JPG không thể được xử lý trực tiếp trong paint(1), crop(1), vcrop(1), nhưng có thể hiển thị bằng page(1)
  • Nếu mất bản gốc, có thể chuyển PNG trở lại định dạng 9front để chỉnh sửa
    • png -c9 my_picture.png > my_picture.pic
  • Có nhiều cách từ đơn giản đến phức tạp để chuyển kết quả sang thiết bị khác
    • Mở bằng page(1) và dùng điện thoại chụp màn hình
    • Cắm ổ USB FAT và sao chép vào /shr/sdS0M3TH1NG
    • Chuyển sang máy tính Unix bằng sshfs(4)
    • Kết nối từ máy tính Unix bằng drawterm rồi sao chép vào /mnt/term/some/where
    • Đăng lên snac bằng mothra(1)
    • Gửi email cho chính mình từ máy tính 9front
    • Chuyển bằng sshfs(4) sang máy ảo bên trong 9front
    • Sao chép lên webserver 9front rồi tải xuống từ thiết bị khác

1 bình luận

 
Các bình luận trên Lobste.rs
  • Tôi luôn thấy Plan 9 và 9front hấp dẫn, và khiếu hài hước của 9front làm tôi nhớ đến web ngày xưa :) Cái này cũng không ngoại lệ
    • Đó là một hệ thống thoải mái
      Viết từ Mothra trên 9front
  • Việc dùng thước để kẻ đường thẳng trên bảng vẽ có một kiểu hỗn loạn thú vị kỳ lạ, nhưng khó giải thích vì sao nó lại tệ. Mà ngay từ đầu cũng không chắc nó có tệ không
    Có lẽ những biến thiên nhỏ tự nhiên còn có thể khiến nó trông đẹp hơn đường Bresenham
    Dù vậy, may là họ đã dùng compa trên giấy can chứ không đặt trực tiếp lên bề mặt bảng vẽ
    • Nếu vẽ chậm thì đặc biệt dễ xuất hiện một mức độ gợn sóng nhân tạo nào đó
      Tuy nhiên phần lớn chỉ cần để ý và tránh là được, nên tôi rất khuyến nghị dùng dụng cụ dẫn hướng vật lý thay vì độ chính xác nhân tạo
    • Chiếc compa dùng hồi đi học của tôi có thể thay phần vẽ bằng bất kỳ cây bút nào
      Nếu cắm phần kim vào một miếng nút bần rượu vang thì có vẻ sẽ hoạt động khá ổn :^)
  • @pmjv, nếu coi cả memeplex triapul.cz lẫn stanleylieber.com đều là của bạn… rốt cuộc bạn lấy đâu ra thời gian vậy?!
    • Không phải cả hai đều là cùng một người!