- Organiza o fluxo completo de desenho no 9front em torno do
paint(1), conectando desde a escolha do dispositivo de entrada até o gerenciamento da tela, manipulação de imagens e exportação - O trabalho é feito no formato interno image(6) do 9front; depois de desenhar com
paint(1), o resultado é ajustado compage(1),crop(1),vcrop(1),resize(1)erotate(1) - O
paint(1)não tem detecção de pressão, camadas nem recortar/colar, então o usuário precisa gerenciar manualmente a área de trabalho e as cores, como se fosse papel - Abrange mouse, dedo, caneta, tablet externo e entrada via drawterm/VNC, mas os botões da caneta imitam cliques do mouse, então uma configuração com teclado e mouse por perto é prática
- Para compartilhamento externo, a conversão para PNG é adequada; PNG e JPG não são alvos de edição direta do
paint(1),crop(1)evcrop(1), então, se necessário, é preciso convertê-los de volta para o formato image do 9front
Configuração básica para desenhar no 9front
- Para desenhar, é preciso uma “ferramenta de desenho” e uma “superfície para desenhar”; no 9front, além de dispositivos reais de entrada por caneta, é possível usar vários métodos de entrada
- Se for um computador rodando 9front, dá para acompanhar
How to draw; se você quiser um dispositivo para desenhar diretamente na tela, um notebook 2 em 1 com suporte a Wacom é adequado - A lista de dispositivos que de fato funcionaram bem é a seguinte, da linha ThinkPad
Características por dispositivo de entrada
- Desenho com mouse é um método antigo, mas tem a vantagem de ser compatível com qualquer computador que tenha mouse
- Na entrada por dedo, o toque na tela imita o clique esquerdo do mouse, mas não substitui outros cliques, então é preciso manter o mouse por perto
- Tablets externos com tela podem não funcionar no 9front, enquanto modelos sem tela podem funcionar
- O dispositivo recomendado é o GAOMON S620, que funciona bem no 9front em plug and play
- O Wacom CTL-672 funciona como um touchpad de coordenadas relativas
- O Wacom CTL-490 não funciona
- Informações relacionadas estão em [fqa] 3.2.4 - Tablet Digitizers
- É difícil desenhar direito usando apenas o teclado, mas o teclado é necessário para trabalhar com
paint(1)- Em tablets ou ambientes especiais nos quais o acesso ao teclado físico é difícil, é possível usar o teclado virtual
bitsy/keyboard - Exemplo de execução:
rio -k 'bitsy/keyboard -n'
- Em tablets ou ambientes especiais nos quais o acesso ao teclado físico é difícil, é possível usar o teclado virtual
- Com drawterm/VNC, é possível se conectar a um computador 9front remoto ou virtual e usar uma variedade maior de dispositivos de entrada
- É possível desenhar com o dedo em um telefone Android, com mouse no Linux e no MacOS, ou usar no Windows dispositivos de entrada que o 9front não oferece suporte diretamente
- O site relacionado é drawterm.9front.org
Formato image(6) e premissas do paint(1)
- O desenho, o recorte e a manipulação de imagens no 9front são feitos em arquivos no formato interno image(6)
- Enquanto você cria uma imagem, não é preciso se preocupar muito com o formato, mas, para compartilhar fora do sistema, é necessário converter para outro formato
- O nome do arquivo é exemplificado como
file.pic, mas você pode dar o nome que quiser - Este guia trata apenas do
paint(1)entre os vários programas de desenho do 9front - O
paint(1)deve ser abordado mais como um trabalho de desenhar com papel, tinta e cor do que como um programa comum de desenho digital
Limitações e operações básicas do paint(1)
- A caneta e os botões do tablet imitam entradas de mouse, e, no guia, tudo é descrito como operação de mouse
- Ficar suspenso sobre a tela corresponde a mover o mouse
- Tocar a superfície corresponde a clique esquerdo ou manter pressionado
- Uma caneta ideal tem 2 botões para clique do meio e clique direito
- Se houver apenas um botão de clique direito, é possível segurar Shift e apertar o botão para imitar o clique do meio
- O
paint(1)e o 9front não oferecem suporte a detecção de pressão - Também não há camadas nem recortar/colar; o que foi desenhado é o resultado final
- Salvar e abrir são feitos por entradas de teclado
w: salvar arquivor: abrir ou reler arquivo|: canalizar a tela atual para um comando e convertê-la< command: ler o resultado de um comando nopaint(1)e substituir a tela atual> command: enviar a tela atual para um comando e escrever em um arquivo
- Exemplos de operações são os seguintes
| rotate -u: girar a tela< crop -i -50 glenda.pic: abrirglenda.picadicionando uma borda preta de 50 pixels> crop -i -50 | rotate -r 90 > modified_glenda.pic: adicionar uma borda à tela atual, girar 90 graus e salvar
A tela é determinada pela área onde pixels foram colocados
- No
paint(1), a tela é a área retangular que contém o desenho - A janela branca logo após iniciar é um arquivo vazio, e a tela só é criada depois que o primeiro pixel é desenhado ou apagado
- O
paint(1)considera o pixel mais distante como o limite da tela- O tamanho da janela não determina o tamanho da tela
- Mesmo pixels apagados com a borracha são tratados como pixels colocados
- Recomenda-se encarar o tamanho da primeira janela criada pelo
paint(1)como uma tela de trabalho, desenhar marcas de corte nos cantos e então trabalhar - Se for necessária uma imagem de tamanho exato, é preciso criar uma tela de tamanho fixo em um procedimento separado e, depois do trabalho, calcular o recorte ou remover as margens
Principais ferramentas do paint(1)
- A seleção de ferramentas é feita clicando com o botão esquerdo do mouse na barra de ferramentas inferior
- Cores
- A cor é selecionada com o clique esquerdo
- Clicar com o botão direito em uma cor da barra de ferramentas permite inserir um código hexadecimal para alterar a paleta
- O
paint(1)não lembra a paleta após encerrar, então é preciso alterá-la novamente sempre que abrir uma nova janela - Para usar mais de 16 cores, é possível abrir o mesmo arquivo de imagem em várias janelas do
paint(1)e sincronizar comwer
- Pincel
- Escolha o tamanho do pincel com
0-9ou com o botão esquerdo do mouse e arraste para desenhar
- Escolha o tamanho do pincel com
- Preenchimento
- Usa
f,c, botão esquerdo do mouse e botão do meio do mouse - Altera para outra cor uma região de pixels conectados da mesma cor
- Também é usado para mudar a cor de fundo, que passa a ser a cor alterada pela borracha
cremove tudo e transforma a cor selecionada no fundo, deixando o arquivo em estado vazio
- Usa
- Borracha
- Usa
0-9e botão do meio do mouse - Muda para a cor de fundo a área sob o cursor, no mesmo tamanho do pincel atual
- Usa
- Linhas retas e círculos
- Para linhas retas, usa-se uma régua
- Para círculos, segue-se um objeto achatado e redondo ou um círculo desenhado previamente com compasso em papel translúcido
- Mover, ampliar e desfazer
- Segurar o botão direito do mouse e mover faz pan
-e+ampliam/reduzem o zoom, mas não é possível reduzir para além do nível de zoom originalEscreinicia o zoom e centraliza a telaudesfaz o último segmento contínuo; uma única linha longa também pode ser dividida em várias etapas de undo
Camadas falsas e remoção baseada em cores
- O
paint(1)não tem camadas, mas é possível criar camadas falsas esboçando com uma cor que não será usada de fato e desenhando linhas por cima - No exemplo, HotPink é usado como cor de esboço e, ao final, apenas essa cor é removida
- Usar preenchimento manual ou borracha precisa pode levar muito tempo, então é útil substituir uma cor específica pela cor de fundo com
pico - O
picopode ser obtido com o seguinte comandogit/clone https://github.com/qwx9/pico
- A explicação relacionada está em Image Manipulation on Plan 9 Using pico
- Os valores RGB decimais de HotPink
#ff5fd7são255, 95, 215, e há um exemplo de conversão compc(1)
page(1), crop(1), vcrop(1), resize(1), rotate(1)
- O
page(1)é um visualizador de documentos, usado para exibir vários formatos de imagem, PDFs, ebooks etc.- É possível ver a imagem com
page my_picture.pic - Recomenda-se adquirir o hábito de conferir no
page(1)antes de escrever em arquivo o resultado da manipulação de imagem - Também no
page(1), é possível pressionarwpara salvar em arquivo o resultado exibido
- É possível ver a imagem com
- Se a imagem ficar maior do que a janela do
paint(1), é possível criar uma janela separada compage picture.filee usá-la como uma janela de pré-visualização comfit widthoufit height - O
vcrop(1)é uma ferramenta gráfica de recorte- Botão esquerdo do mouse para pan
- Botão do meio do mouse para selecionar a ferramenta de recorte
- Botão direito do mouse para exibir opções como salvar
- Como não há zoom, há limitações ao recortar uma área maior que a janela ou quando é necessário um recorte preciso em nível de pixel
- O
crop(1)remove ou adiciona linhas de pixelscrop -x 50 mypic.pic > mypic_crop.pic: recortar 50 pixels das laterais esquerda e direitacrop -i -10 -b 255 255 255 mypic.pic: adicionar uma borda branca de 10 pixels
- O
resize(1)aumenta ou reduz a imagem- Para manter a proporção original, especifique apenas um de
-xou-y - Exemplo:
resize -n -y 245 mypic.pic > mypic_resized.pic
- Para manter a proporção original, especifique apenas um de
- O
rotate(1)pode girar a imagem em unidades de 90 grausrotate -r 90 my.pic > rotated.my.picrotate -ul > flipped.my.pic
Criando um tamanho de tela exato e estratégias de recorte
- Se você precisa de um tamanho exato, como 250x250, use um procedimento em que se cria uma imagem vazia, usa-se
resize(1)para deixá-la no tamanho desejado e então ela é aberta nopaint(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
- O
paint(1)não impede desenhar além dos limites da tela; se você ultrapassar o limite, o tamanho da imagem se expande - Há três opções
- Não se preocupar com linhas que ultrapassem a borda e recortar matematicamente depois do trabalho
- Adicionar antes do trabalho uma margem extra uniforme e removê-la ao final
- Desenhar marcas de corte nos cantos e recortar depois
crop -r a b c drecorta usando as coordenadas absolutas da imagem, e é possível verificar as coordenadas comdd -bs 128 -count 1- No método com margens, por exemplo, você adiciona uma margem vermelha de 25 pixels a uma tela branca de 250x250 para trabalhar e, ao terminar, remove com
crop -i 25para obter um resultado exato de 250x250
Traçado e paletas
- É possível importar uma imagem da internet, convertê-la para o formato do 9front, clareá-la com
picoe traçá-la nopaint(1)- Exemplo:
hget http://img.triapul.cz/fahwui.jpg | jpg -c9 > to.trace.pic - No
pico, clareie a imagem comz == 3 ? Z : (im + Z) / 2
- Exemplo:
- Depois de traçar as linhas no
paint(1)com uma cor específica, como HotPink, é possível usarpicopara manter apenas essa cor e transformar o resto em branco - Como material relacionado a paletas, há git.sr.ht/~amavect/makeu
Exportação e compartilhamento externo
- Como imagens desenhadas no 9front são, na prática, pixel art, recomenda-se convertê-las para PNG
- O texto resume que PNG é sempre menor e mais nítido que JPG, e que aparece exatamente como era visto no
paint(1) - Outros formatos, como PNG ou JPG, não podem ser manipulados diretamente no
paint(1),crop(1)evcrop(1), mas podem ser exibidos nopage(1) - Se você perdeu o original, pode converter o PNG de volta para o formato do 9front e editá-lo
png -c9 my_picture.png > my_picture.pic
- Há várias formas, das simples às complexas, de levar o resultado para outro dispositivo
- Abrir com
page(1)e fotografar a tela com o celular - Conectar um drive USB FAT e copiar para
/shr/sdS0M3TH1NG - Transferir para um computador Unix com
sshfs(4) - Conectar por drawterm a partir de um computador Unix e copiar para
/mnt/term/some/where - Publicar no snac com
mothra(1) - Enviar um email para si mesmo a partir do computador 9front
- Transferir para uma máquina virtual dentro do 9front com
sshfs(4) - Copiar para um servidor web 9front e baixar de outro dispositivo
- Abrir com
1 comentários
Comentários no Lobste.rs
escrito no Mothra do 9front
Talvez pequenas variações naturais acabem ficando visualmente melhores do que uma linha de Bresenham
Ainda bem que o compasso foi usado sobre papel vegetal, e não diretamente na superfície da mesa
Ainda assim, na maior parte do tempo isso é algo que dá para evitar conscientemente, então recomendo fortemente usar guias físicas em vez de precisão artificial
Acho que funcionaria bem se a ponta da agulha fosse encaixada num pedaço de rolha de vinho :^)