1 pontos por GN⁺ 3 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • 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 com page(1), crop(1), vcrop(1), resize(1) e rotate(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) e vcrop(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'
  • 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 arquivo
    • r: abrir ou reler arquivo
    • |: canalizar a tela atual para um comando e convertê-la
    • < command: ler o resultado de um comando no paint(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: abrir glenda.pic adicionando 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 com w e r
  • Pincel
    • Escolha o tamanho do pincel com 0-9 ou com o botão esquerdo do mouse e arraste para desenhar
  • 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
    • c remove tudo e transforma a cor selecionada no fundo, deixando o arquivo em estado vazio
  • Borracha
    • Usa 0-9 e botão do meio do mouse
    • Muda para a cor de fundo a área sob o cursor, no mesmo tamanho do pincel atual
  • 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 original
    • Esc reinicia o zoom e centraliza a tela
    • u desfaz 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 pico pode ser obtido com o seguinte comando
  • A explicação relacionada está em Image Manipulation on Plan 9 Using pico
  • Os valores RGB decimais de HotPink #ff5fd7 são 255, 95, 215, e há um exemplo de conversão com pc(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 pressionar w para salvar em arquivo o resultado exibido
  • Se a imagem ficar maior do que a janela do paint(1), é possível criar uma janela separada com page picture.file e usá-la como uma janela de pré-visualização com fit width ou fit 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 pixels
    • crop -x 50 mypic.pic > mypic_crop.pic: recortar 50 pixels das laterais esquerda e direita
    • crop -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 -x ou -y
    • Exemplo: resize -n -y 245 mypic.pic > mypic_resized.pic
  • O rotate(1) pode girar a imagem em unidades de 90 graus
    • rotate -r 90 my.pic > rotated.my.pic
    • rotate -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 no 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
  • 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 d recorta usando as coordenadas absolutas da imagem, e é possível verificar as coordenadas com dd -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 25 para 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 pico e traçá-la no paint(1)
  • Depois de traçar as linhas no paint(1) com uma cor específica, como HotPink, é possível usar pico para 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) e vcrop(1), mas podem ser exibidos no page(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

1 comentários

 
GN⁺ 3 시간 전
Comentários no Lobste.rs
  • Sempre achei Plan 9 e 9front fascinantes, e o senso de humor do 9front lembra a web antiga :) este também não é exceção
    • É um sistema confortável
      escrito no Mothra do 9front
  • Usar uma régua em cima de uma mesa digitalizadora para traçar linhas retas tem um quê de caos prazeroso, mas é difícil explicar por que isso seria ruim. Nem sei se é ruim, para começo de conversa
    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
    • Se você desenhar devagar, é especialmente fácil surgir um certo nível de ondulação artificial
      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
    • O compasso que eu usava na escola permitia trocar a ponta de desenho por qualquer caneta
      Acho que funcionaria bem se a ponta da agulha fosse encaixada num pedaço de rolha de vinho :^)
  • @pmjv, assumindo que o memeplexo de triapul.cz e stanleylieber.com sejam ambos seus... como você arranja tempo para tudo isso?!
    • Não são a mesma pessoa!