Tôi không giết Stanley Lieber: Cách vẽ bằng 9front
(triapul.cz)- 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ằngpage(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'
- 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
- 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ệpr: 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àopaint(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.picsau 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ằngwvàr
- Cọ vẽ
- Chọn kích thước cọ bằng
0-9hoặc chuột trái, rồi kéo để vẽ
- Chọn kích thước cọ bằng
- 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
cxóa mọi thứ và đổi nền sang màu đã chọn, đưa tệp về trạng thái trống
- Dù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
- Dùng
- Đườ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ữauhoà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
picobằng lệnh saugit/clone https://github.com/qwx9/pico
- 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
#ff5fd7là255, 95, 215, và có kèm ví dụ chuyển đổi bằngpc(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ấnwđể lưu kết quả đang hiển thị thành tệp
- Có thể xem tranh bằng
- Nếu tranh lớn hơn cửa sổ
paint(1), có thể tạo cửa sổpage picture.fileriêng và dùngfit widthhoặcfit heightnhư 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 pixelcrop -x 50 mypic.pic > mypic_crop.pic: cắt 50 pixel ở hai bên trái phảicrop -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
-xhoặc-y - Ví dụ:
resize -n -y 245 mypic.pic > mypic_resized.pic
- Để giữ tỷ lệ gốc, chỉ định một trong
rotate(1)có thể xoay ảnh theo đơn vị 90 độrotate -r 90 my.pic > rotated.my.picrotate -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ằngpaint(1)w empty_canvas.picresize -n -x 250 -y 250 empty_canvas.pic > empty_canvas_250x250.piccp empty_canvas_250x250.pic mypicture.picpaint 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 dcắt bằng tọa độ tuyệt đối của ảnh; có thể kiểm tra tọa độ bằngdd -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 trongpaint(1)- Ví dụ:
hget http://img.triapul.cz/fahwui.jpg | jpg -c9 > to.trace.pic - Trong
pico, dùngz == 3 ? Z : (im + Z) / 2để làm sáng ảnh
- Ví dụ:
- Sau khi trace đường nét bằng màu cụ thể như HotPink trong
paint(1), có thể dùngpicođể 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ằngpage(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
- Mở bằng
1 bình luận
Các bình luận trên Lobste.rs
Viết từ Mothra trên 9front
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ẽ
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
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 :^)