1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • 9front’ta çizim yapmanın tüm akışını paint(1) merkezinde özetler; girdi aygıtı seçiminden tuval yönetimine, görüntü işlemeye ve dışa aktarmaya kadar birbirine bağlar
  • Çalışma 9front’un dahili image(6) biçiminde yürütülür; paint(1) ile çizdikten sonra sonucu page(1), crop(1), vcrop(1), resize(1), rotate(1) ile ayarlama yöntemini kullanır
  • paint(1) basınç algılama, katmanlar ve kes/yapıştır sunmadığından kullanıcı çalışma alanını ve renkleri kâğıt kullanır gibi doğrudan yönetmek zorundadır
  • Fare, parmak, kalem, harici tablet ve drawterm/VNC girdilerinin hepsini ele alır; ancak kalem düğmeleri fare tıklamalarını taklit ettiğinden klavye ve fareyi yakında tutan bir düzen pratiktir
  • Dışarıda paylaşım için PNG dönüşümü uygundur; PNG veya JPG, paint(1), crop(1), vcrop(1) tarafından doğrudan düzenlenemez, bu yüzden gerekirse yeniden 9front image biçimine çevrilmelidir

9front’ta çizim yapmak için temel kurulum

  • Çizim yapmak için “çizecek bir araç” ve “üzerine çizilecek bir yüzey” gerekir; 9front’ta gerçek kalem giriş aygıtlarının yanı sıra çeşitli giriş yöntemleri kullanılabilir
  • 9front çalıştıran bir bilgisayar varsa How to draw izlenebilir; doğrudan ekran üzerine çizim yapılan bir aygıt isteniyorsa Wacom destekli 2’si 1 arada dizüstüler uygundur
  • Gerçekte iyi çalıştığı görülen aygıt listesi aşağıdaki ThinkPad modelleridir

Girdi aygıtlarına göre özellikler

  • Fareyle çizim eski bir yöntemdir, ancak fare bulunan her bilgisayarla uyumlu olması avantajdır
  • Parmak girişi ekrana dokunmayı sol fare tıklaması gibi taklit eder, ancak diğer tıklamaların yerini tutamaz; bu yüzden fareyi yakında tutmak gerekir
  • Harici tabletlerde ekranlı ürünlerin 9front’ta çalışmama olasılığı vardır; ekransız ürünler ise çalışabilir
    • Önerilen aygıt GAOMON S620’dir ve 9front’ta tak-çalıştır olarak iyi çalışır
    • Wacom CTL-672 göreli koordinatlı bir touchpad gibi çalışır
    • Wacom CTL-490 çalışmaz
    • İlgili bilgiler [fqa] 3.2.4 - Tablet Digitizers bölümünde bulunur
  • Yalnızca klavyeyle düzgün çizim yapmak zordur, ancak paint(1) çalışmasında klavye gerekir
    • Fiziksel klavyeye erişimin zor olduğu tablet bilgisayarlarda veya özel ortamlarda bitsy/keyboard ekran klavyesi kullanılabilir
    • Çalıştırma örneği: rio -k 'bitsy/keyboard -n'
  • drawterm/VNC kullanılırsa uzaktaki veya sanal bir 9front bilgisayarına bağlanıp daha çeşitli girdi aygıtları kullanılabilir
    • Android telefonda parmakla çizim yapmak, Linux ve MacOS’ta fareyle çizim yapmak veya Windows’ta 9front’un doğrudan desteklemediği giriş aygıtlarını kullanmak mümkündür
    • İlgili site: drawterm.9front.org

image(6) biçimi ve paint(1)’in varsayımları

  • 9front’ta çizim, kırpma ve görüntü işleme dahili image(6) biçimli dosyalarda yapılır
  • Çizim oluştururken biçimi fazla dert etmeniz gerekmez, ancak dışarıda paylaşmak için başka bir biçime dönüştürmek gerekir
  • Dosya adı için file.pic gibi bir kullanım örnek verilir, ancak istediğiniz adı verebilirsiniz
  • Bu rehber, 9front’taki çeşitli çizim programları arasından yalnızca paint(1) programını ele alır
  • paint(1)’e, tipik dijital çizim programlarından çok kâğıt, mürekkep ve renkle çizim yapmaya daha yakın bir yaklaşımla bakmak gerekir

paint(1)’in sınırlamaları ve temel kullanım

  • Kalem ve tablet düğmeleri fare girdisini taklit eder; rehberde bunların hepsi fare işlemleri olarak ifade edilir
    • Ekranın üzerinde havada durma fare hareketidir
    • Yüzeye dokunmak sol tıklama veya basılı tutmadır
    • İdeal kalemde orta tıklama ve sağ tıklama için 2 düğme bulunur
    • Yalnızca sağ tıklama yapabilen bir düğme varsa Shift’e basılı tutup düğmeye basarak orta tıklama taklit edilebilir
  • paint(1) ve 9front basınç algılama desteklemez
  • Katmanlar ve kes/yapıştır da yoktur; çizdiğiniz şey olduğu gibi sonuç olur
  • Kaydetme ve açma klavye girdileriyle yapılır
    • w: dosyayı kaydet
    • r: dosyayı aç veya yeniden oku
    • |: geçerli tuvali bir komuta pipe ederek dönüştür
    • < command: komut sonucunu paint(1) içine okuyup geçerli tuvali değiştir
    • > command: geçerli tuvali komuta verip dosyaya yaz
  • Örnek işlemler şöyledir
    • | rotate -u: tuvali döndür
    • < crop -i -50 glenda.pic: glenda.pic dosyasına 50 piksel siyah kenarlık ekleyerek aç
    • > crop -i -50 | rotate -r 90 > modified_glenda.pic: geçerli tuvale kenarlık ekle, 90 derece döndür ve kaydet

Tuval, piksel yerleştirilmiş alanla belirlenir

  • paint(1) içinde tuval, çizimi içeren dikdörtgen alandır
  • Başlangıçtaki beyaz pencere boş bir dosyadır; ilk pikseli çizdikten veya sildikten sonra ancak tuval oluşur
  • paint(1) en uzaktaki pikseli tuvalin sınırı olarak kabul eder
    • Pencere boyutu tuval boyutunu belirlemez
    • Silgiyle silinen pikseller de piksel yerleştirilmiş sayılır
  • İlk oluşturulan paint(1) penceresinin boyutunu çalışma tuvali gibi düşünüp köşelere kırpma işaretleri çizerek çalışmak önerilir
  • Tam boyutlu bir çizim gerekiyorsa ayrı bir işlemle sabit boyutlu tuval oluşturmak, çalışma sonrasında kırpma hesabı yapmak veya boşlukları kaldırmak gerekir

paint(1)’in başlıca araçları

  • Araç seçimi, alttaki araç çubuğuna sol fareyle tıklanarak yapılır
  • Renkler
    • Sol tıklamayla renk seçilir
    • Araç çubuğundaki renge sağ tıklanırsa paleti değiştirmek için onaltılık kod girilebilir
    • paint(1) kapandıktan sonra paleti hatırlamaz; bu yüzden her yeni pencere açıldığında yeniden değiştirmek gerekir
    • 16’dan fazla renk kullanmak için aynı çizim dosyası birden fazla paint(1) penceresinde açılıp w ve r ile eşitlenebilir
  • Fırça
    • 0-9 veya sol fareyle fırça boyutu seçilir ve sürükleyerek çizilir
  • Doldurma
    • f, c, sol fare ve orta fare kullanılır
    • Aynı renkle bağlı piksel alanını başka bir renge çevirir
    • Arka plan rengini değiştirmek için de kullanılır; arka plan rengi, silginin dönüştürdüğü renktir
    • c her şeyi kaldırır, seçili rengi arka plan yapar ve dosyayı boş dosya durumuna getirir
  • Silgi
    • 0-9 ve orta fare kullanılır
    • İmlecin altını, geçerli fırça boyutuyla aynı boyutta arka plan rengine çevirir
  • Düz çizgi ve daire
    • Düz çizgi için cetvel kullanılır
    • Daire için yassı ve yuvarlak bir nesne ya da pelür kâğıdına pergelle önceden çizilmiş bir daire izlenir
  • Taşıma, yakınlaştırma, geri alma
    • Sağ fareye basılı tutup hareket ettirirseniz pan yapılır
    • -, + ile yakınlaştırıp uzaklaştırılır, ancak özgün yakınlaştırma düzeyinden daha uzağa uzaklaştırılamaz
    • Esc yakınlaştırmayı sıfırlar ve tuvali ortalar
    • u son kesintisiz çizgi parçasını geri alır; tek bir uzun çizgi bile birden fazla undo adımına bölünebilir

Sahte katmanlar ve renge dayalı kaldırma

  • paint(1)’de katman yoktur, ancak gerçekte kullanmayacağınız bir renkle eskiz yapıp üzerine çizgi çizerek sahte katman oluşturabilirsiniz
  • Örnekte eskiz rengi olarak HotPink kullanılır ve tamamlandıktan sonra yalnızca bu renk kaldırılır
  • Elle doldurma veya hassas silgi kullanmak uzun sürebileceğinden pico ile belirli bir rengi arka plan rengine dönüştürmek yararlıdır
  • pico şu komutla alınabilir
  • İlgili açıklama Image Manipulation on Plan 9 Using pico adresindedir
  • HotPink #ff5fd7 renginin onluk RGB değerleri 255, 95, 215’tir; pc(1) ile dönüştürme örneği de içerilir

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

  • page(1) bir belge görüntüleyicidir; çeşitli görüntü biçimlerini, PDF’leri, e-kitapları vb. göstermek için kullanılır
    • page my_picture.pic ile çizim görülebilir
    • Görüntü işleme sonucunu dosyaya yazmadan önce page(1) ile kontrol etme alışkanlığı önerilir
    • page(1) içinde de w tuşuna basarak gösterilen sonuç dosyaya kaydedilebilir
  • Çizim paint(1) penceresinden büyük hâle gelirse ayrı bir page picture.file penceresi açıp fit width veya fit height ile önizleme penceresi gibi kullanılabilir
  • vcrop(1) grafiksel bir kırpma aracıdır
    • Sol fareyle pan yapılır
    • Orta fareyle kırpma aracı seçilir
    • Sağ fareyle kaydetme gibi seçenekler gösterilir
    • Yakınlaştırma olmadığından pencereden büyük bir alanı kırpmak veya piksel düzeyinde hassas kırpma gerektiğinde sınırlamaları vardır
  • crop(1) piksel satırlarını kaldırır veya ekler
    • crop -x 50 mypic.pic > mypic_crop.pic: sağdan ve soldan 50 piksel kırp
    • crop -i -10 -b 255 255 255 mypic.pic: 10 piksel beyaz kenarlık ekle
  • resize(1) çizimi büyütür veya küçültür
    • Özgün oranı korumak için -x veya -y seçeneklerinden yalnızca biri belirtilir
    • Örnek: resize -n -y 245 mypic.pic > mypic_resized.pic
  • rotate(1) görüntüyü 90 derecelik birimlerle döndürebilir
    • rotate -r 90 my.pic > rotated.my.pic
    • rotate -ul > flipped.my.pic

Tam tuval boyutu oluşturma ve kırpma stratejisi

  • Tam olarak 250x250 gibi bir boyut gerekiyorsa boş bir görüntü oluşturup resize(1) ile istenen boyuta getirdikten sonra paint(1) ile açma işlemi kullanılır
    • 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) tuval sınırlarının dışına çizim yapmayı engellemez; sınır aşılırsa çizim boyutu genişler
  • Üç seçenek vardır
    • Sınırı aşan çizgileri önemsemeyip iş bittikten sonra matematiksel olarak kırpmak
    • Çalışmadan önce eşit fazladan boşluk ekleyip tamamlandıktan sonra kaldırmak
    • Köşelere kırpma işaretleri çizip daha sonra kırpmak
  • crop -r a b c d, görüntünün mutlak koordinatlarını kullanarak kırpar; koordinatlar dd -bs 128 -count 1 ile kontrol edilebilir
  • Boşluk yöntemi örneğin 250x250 beyaz tuvale 25 piksel kırmızı boşluk ekleyerek çalışmak, bitince crop -i 25 ile kaldırıp tam 250x250 sonuç elde etmektir

İz üzerinden çizim ve palet

  • İnternetten bir görüntü alıp 9front biçimine dönüştürdükten sonra, pico ile açarak paint(1) içinde üzerinden çizim yapılabilir
  • paint(1) içinde HotPink gibi belirli bir renkle çizgilerin üzerinden geçtikten sonra, pico ile yalnızca o renk bırakılıp geri kalanlar beyaza çevrilebilir
  • Paletle ilgili kaynak olarak git.sr.ht/~amavect/makeu bulunur

Dışa aktarma ve paylaşma

  • 9front’ta çizilen görüntüler fiilen piksel art olduğundan PNG biçimine dönüştürülmesi önerilir
  • PNG’nin JPG’den her zaman daha küçük ve net olduğu, paint(1) içinde göründüğü gibi göründüğü belirtilir
  • PNG veya JPG gibi diğer biçimler paint(1), crop(1), vcrop(1) içinde doğrudan işlenemez, ancak page(1) ile görüntülenebilir
  • Özgün dosya kaybedildiyse PNG yeniden 9front biçimine dönüştürülüp düzenlenebilir
    • png -c9 my_picture.png > my_picture.pic
  • Sonucu başka aygıtlara aktarmanın basitten karmaşığa çeşitli yolları vardır
    • page(1) ile açıp telefonla ekranın fotoğrafını çekmek
    • FAT USB sürücü bağlayıp /shr/sdS0M3TH1NG konumuna kopyalamak
    • sshfs(4) ile Unix bilgisayara aktarmak
    • Unix bilgisayardan drawterm ile bağlanıp /mnt/term/some/where konumuna kopyalamak
    • mothra(1) ile snac’te yayımlamak
    • 9front bilgisayarından kendinize e-posta göndermek
    • 9front içindeki sanal makineye sshfs(4) ile aktarmak
    • 9front web sunucusuna kopyalayıp başka bir aygıttan indirmek

1 yorum

 
GN⁺ 3 시간 전
Lobste.rs yorumları
  • Plan 9 ve 9front bana hep çekici gelmiştir; 9front'un mizah anlayışı da eski web'i hatırlatıyor :) Bu da istisna değil
    • Rahat bir sistem
      9front'taki Mothra'da yazıldı
  • Çizim tableti üzerinde cetvelle düz çizgi çekmekte tuhaf biçimde keyifli bir kaos var; bunun neden kötü olduğunu açıklamak zor. Zaten kötü mü, ondan da emin değilim
    Belki doğal küçük sapmalar, çizgiyi Bresenham çizgisinden daha hoş gösterebilir
    Yine de pergeli tablet yüzeyine doğrudan dayamayıp aydınger kâğıdı üzerinde kullanmış olması iyi olmuş
    • Yavaş çizince özellikle bir miktar yapay dalgalanma oluşması kolay
      Yine de çoğu, farkında olup kaçınabileceğiniz bir sorun; bu yüzden yapay hassasiyet yerine fiziksel kılavuzlar kullanmayı şiddetle öneririm
    • Okulda kullandığımız pergel, çizim tarafını istediğiniz kalemle değiştirmenize izin veriyordu
      İğne tarafını bir mantar şarap tıpası parçasına batırırsanız fena çalışmayabilir :^)
  • @pmjv, triapul.cz ve stanleylieber.com memeplex'lerinin ikisinin de size ait olduğunu varsayarsak… zamanı nasıl buluyorsunuz?!
    • İkisi aynı kişi değil!