1 पॉइंट द्वारा GN⁺ 3 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 9front में चित्र बनाने की पूरी workflow को paint(1) के इर्द-गिर्द व्यवस्थित किया गया है, जिसमें input device चुनने से लेकर canvas management, image manipulation और export तक सब जुड़ा है
  • काम 9front के अंदरूनी image(6) format में होता है; paint(1) से ड्रॉ करने के बाद page(1), crop(1), vcrop(1), resize(1), rotate(1) से output को adjust किया जाता है
  • paint(1) में pressure sensitivity, layers, cut/paste नहीं हैं, इसलिए user को कागज़ की तरह workspace और colours खुद manage करने पड़ते हैं
  • mouse, finger, pen, external tablet, drawterm/VNC input सभी को कवर किया गया है, लेकिन pen buttons mouse clicks की नकल करते हैं, इसलिए keyboard और mouse को पास रखना व्यावहारिक setup है
  • बाहर share करने के लिए PNG conversion उपयुक्त है; PNG या JPG paint(1), crop(1), vcrop(1) में सीधे edit करने योग्य नहीं हैं, इसलिए जरूरत हो तो उन्हें फिर से 9front image format में बदलना पड़ता है

9front में चित्र बनाने के लिए basic setup

  • चित्र बनाने के लिए “ड्रॉ करने का tool” और “ड्रॉ करने की surface” चाहिए; 9front में असली pen input device के अलावा कई input तरीकों का इस्तेमाल किया जा सकता है
  • अगर computer पर 9front चल रहा है, तो आप How to draw follow कर सकते हैं; और अगर screen पर सीधे ड्रॉ करने वाली device चाहिए, तो Wacom support वाला 2-in-1 laptop उपयुक्त है
  • जिन devices ने व्यवहार में अच्छी तरह काम किया, वे ये ThinkPad models हैं

input devices के हिसाब से विशेषताएँ

  • mouse drawing पुराना तरीका है, लेकिन इसका फायदा है कि यह mouse वाले हर computer के साथ compatible है
  • finger input में screen touch left mouse click की नकल करता है, लेकिन दूसरे clicks की जगह नहीं ले पाता, इसलिए mouse को पास रखना पड़ता है
  • external tablet में screen वाले products 9front में शायद काम न करें, और बिना screen वाले products काम कर सकते हैं
    • recommended device GAOMON S620 है, जो 9front में plug-and-play अच्छी तरह काम करता है
    • Wacom CTL-672 relative-coordinate touchpad की तरह काम करता है
    • Wacom CTL-490 काम नहीं करता
    • संबंधित जानकारी [fqa] 3.2.4 - Tablet Digitizers में है
  • केवल keyboard से ठीक से ड्रॉ करना मुश्किल है, लेकिन paint(1) में काम के लिए keyboard जरूरी है
    • जिन tablet computers या विशेष environments में physical keyboard तक पहुंच मुश्किल हो, वहां bitsy/keyboard on-screen keyboard इस्तेमाल किया जा सकता है
    • run example: rio -k 'bitsy/keyboard -n'
  • drawterm/VNC इस्तेमाल करने पर remote या virtual 9front computer से जुड़कर और ज्यादा तरह के input devices इस्तेमाल किए जा सकते हैं
    • Android phone पर finger से ड्रॉ करना, Linux और MacOS पर mouse से ड्रॉ करना, या Windows पर ऐसे input devices इस्तेमाल करना जिन्हें 9front सीधे support नहीं करता
    • संबंधित site drawterm.9front.org है

image(6) format और paint(1) की assumptions

  • 9front में drawing, cropping और image manipulation अंदरूनी image(6) format files पर किए जाते हैं
  • चित्र बनाते समय format की बहुत चिंता करने की जरूरत नहीं, लेकिन बाहर share करने के लिए किसी दूसरे format में convert करना होगा
  • file name के लिए file.pic जैसा तरीका example है, लेकिन आप कोई भी मनचाहा नाम रख सकते हैं
  • यह guide 9front के कई drawing programs में से केवल paint(1) को cover करती है
  • paint(1) को सामान्य digital drawing program की तुलना में कागज़, स्याही और रंग से चित्र बनाने के तरीके के ज्यादा करीब मानकर इस्तेमाल करना चाहिए

paint(1) की सीमाएँ और basic operations

  • pen और tablet buttons mouse input की नकल करते हैं, और guide में सब कुछ mouse operation के रूप में बताया गया है
    • screen के ऊपर hover करना mouse movement है
    • surface को touch करना left click या press-and-hold है
    • ideal pen में middle click और right click के लिए 2 buttons होते हैं
    • अगर सिर्फ right-click वाला button हो, तो Shift दबाकर button दबाने से middle click की नकल की जा सकती है
  • paint(1) और 9front pressure sensitivity support नहीं करते
  • layers और cut/paste भी नहीं हैं; जो ड्रॉ किया जाता है वही result होता है
  • save और open keyboard input से किए जाते हैं
    • w: file save
    • r: file open या फिर से read
    • |: current canvas को command में pipe करके convert करना
    • < command: command के result को paint(1) में read कर current canvas replace करना
    • > command: current canvas को command में देकर file में लिखना
  • example operations ये हैं
    • | rotate -u: canvas rotate
    • < crop -i -50 glenda.pic: glenda.pic में 50-pixel black border जोड़कर open करना
    • > crop -i -50 | rotate -r 90 > modified_glenda.pic: current canvas में border जोड़ना, 90 degrees rotate करना और save करना

canvas pixels लगे हुए area से तय होता है

  • paint(1) में canvas वह rectangular area है जिसमें drawing शामिल है
  • start के तुरंत बाद की white window एक empty file है; पहला pixel ड्रॉ या erase करने के बाद ही canvas बनता है
  • paint(1) सबसे दूर रखे pixel को canvas boundary मानता है
    • window size canvas size तय नहीं करता
    • eraser से मिटाया गया pixel भी pixel रखे जाने जैसा माना जाता है
  • पहली बनाई गई paint(1) window size को working canvas की तरह सोचकर corners पर crop marks बनाकर काम करना recommended है
  • अगर exact size की drawing चाहिए, तो अलग process से fixed-size canvas बनाना होगा, और काम के बाद crop calculation या margin removal करना होगा

paint(1) के मुख्य tools

  • tool selection नीचे के toolbar पर left mouse click करके किया जाता है
  • colour
    • left click से colour select होता है
    • toolbar colour पर right click करने से hexadecimal code डालकर palette बदली जा सकती है
    • paint(1) exit होने के बाद palette याद नहीं रखता, इसलिए हर नई window खोलने पर इसे फिर बदलना होगा
    • 16 से ज्यादा colours इस्तेमाल करने हों, तो कई paint(1) windows में वही drawing file खोलकर w और r से sync किया जा सकता है
  • brush
    • 0-9 या left mouse से brush size चुनें और drag करके ड्रॉ करें
  • fill
    • f, c, left mouse, middle mouse का इस्तेमाल होता है
    • एक ही colour से जुड़े pixel area को दूसरे colour में बदलता है
    • background colour बदलने में भी इस्तेमाल होता है, और background colour वही colour बनता है जिसे eraser लगाता है
    • c सब कुछ हटाकर selected colour को background बनाता है और empty file state में ले जाता है
  • eraser
    • 0-9, middle mouse का इस्तेमाल होता है
    • current brush size जितने area में cursor के नीचे background colour लगा देता है
  • straight lines और circles
    • straight line के लिए ruler इस्तेमाल करें
    • circle के लिए flat और round object या tracing paper पर compass से पहले से बने circle को follow करने का तरीका इस्तेमाल करें
  • move, zoom, undo
    • right mouse दबाकर move करने से panning होता है
    • -, + से zoom in/out होता है, लेकिन original zoom level से ज्यादा दूर zoom out नहीं कर सकते
    • Esc zoom reset करता है और canvas को center में fit करता है
    • u last continuous segment को undo करता है; एक लंबी line भी कई undo steps में बंट सकती है

fake layers और colour-based removal

  • paint(1) में layers नहीं हैं, लेकिन जिस colour को असल drawing में इस्तेमाल नहीं करना है उससे sketch बनाकर उसके ऊपर lines बनाने के तरीके से fake layers बनाई जा सकती हैं
  • example में HotPink को sketch colour की तरह इस्तेमाल किया गया है, और completion के बाद केवल उस colour को हटाया जाता है
  • manual fill या precise eraser इस्तेमाल करने में बहुत समय लग सकता है, इसलिए pico से किसी specific colour को background colour में replace करना उपयोगी है
  • pico इस command से लिया जा सकता है
  • संबंधित explanation Image Manipulation on Plan 9 Using pico में है
  • HotPink #ff5fd7 के decimal RGB values 255, 95, 215 हैं, और pc(1) से convert करने का example शामिल है

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

  • page(1) document viewer है, और कई image formats, PDF, ebooks आदि दिखाने के लिए इस्तेमाल होता है
    • page my_picture.pic से drawing देखी जा सकती है
    • image manipulation result को file में लिखने से पहले page(1) से check करने की आदत recommended है
    • page(1) में भी w दबाकर दिख रहे result को file में save किया जा सकता है
  • अगर drawing paint(1) window से बड़ी हो गई है, तो अलग page picture.file window बनाकर fit width या fit height से preview window की तरह इस्तेमाल किया जा सकता है
  • vcrop(1) graphical crop tool है
    • left mouse से panning
    • middle mouse से crop tool select
    • right mouse से save आदि options show
    • zoom नहीं होता, इसलिए window से बड़ा area crop करना हो या pixel-level precise crop चाहिए हो, तो इसकी सीमाएँ हैं
  • crop(1) pixel rows/columns हटाता या जोड़ता है
    • crop -x 50 mypic.pic > mypic_crop.pic: left-right से 50 pixels crop करना
    • crop -i -10 -b 255 255 255 mypic.pic: 10-pixel white border जोड़ना
  • resize(1) drawing को बड़ा या छोटा करता है
    • original ratio बनाए रखने के लिए -x या -y में से केवल एक specify करें
    • example: resize -n -y 245 mypic.pic > mypic_resized.pic
  • rotate(1) image को 90-degree units में rotate कर सकता है
    • rotate -r 90 my.pic > rotated.my.pic
    • rotate -ul > flipped.my.pic

exact canvas size बनाना और cropping strategy

  • अगर ठीक 250x250 जैसा size चाहिए, तो empty image बनाकर resize(1) से desired size बनाएं और फिर उसे paint(1) में open करने की process इस्तेमाल करें
    • 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) canvas boundary से बाहर drawing रोकता नहीं है, और boundary पार करने पर drawing size expand कर देता है
  • तीन options हैं
    • boundary पार हुई lines की चिंता न करें और काम के बाद mathematically crop करें
    • काम से पहले extra equal margin जोड़ें और completion के बाद उसे remove करें
    • corners पर crop marks बनाकर रखें और बाद में crop करें
  • crop -r a b c d image के absolute coordinates का इस्तेमाल करके crop करता है, और dd -bs 128 -count 1 से coordinates check किए जा सकते हैं
  • margin method में, उदाहरण के लिए, 250x250 white canvas में 25-pixel red margin जोड़कर काम करें, फिर खत्म होने पर crop -i 25 से हटाकर exact 250x250 result पाएं

tracing और palette

  • internet image लाकर 9front format में convert करने के बाद, pico से उसे light बनाकर paint(1) में trace किया जा सकता है
    • example: hget http://img.triapul.cz/fahwui.jpg | jpg -c9 > to.trace.pic
    • pico में z == 3 ? Z : (im + Z) / 2 से image को light बनाया जाता है
  • paint(1) में HotPink जैसे specific colour से lines trace करने के बाद, pico से सिर्फ वही colour रखकर बाकी को white में बदला जा सकता है
  • palette से जुड़ा resource git.sr.ht/~amavect/makeu है

बाहर export और share करना

  • 9front में बनी images असल में pixel art होती हैं, इसलिए उन्हें PNG में convert करना recommended है
  • PNG हमेशा JPG से छोटा और sharp होता है, और paint(1) में जैसा दिखता था वैसा ही दिखता है—यही निष्कर्ष दिया गया है
  • PNG या JPG जैसे दूसरे formats को paint(1), crop(1), vcrop(1) में सीधे handle नहीं किया जा सकता, लेकिन page(1) से display किया जा सकता है
  • अगर original खो गया हो, तो PNG को फिर से 9front format में convert करके edit किया जा सकता है
    • png -c9 my_picture.png > my_picture.pic
  • result को दूसरी device पर ले जाने के तरीके simple से लेकर complex तक कई हैं
    • page(1) में खोलकर phone से screen की photo लेना
    • FAT USB drive connect करके /shr/sdS0M3TH1NG में copy करना
    • sshfs(4) से Unix computer पर भेजना
    • Unix computer से drawterm के जरिए connect करके /mnt/term/some/where में copy करना
    • mothra(1) से snac पर post करना
    • 9front computer से खुद को email भेजना
    • 9front के अंदर virtual machine में sshfs(4) transfer करना
    • 9front webserver पर copy करके दूसरी device से download करना

1 टिप्पणियां

 
GN⁺ 3 시간 전
Lobste.rs की राय
  • मुझे Plan 9 और 9front हमेशा आकर्षक लगे हैं, और 9front का humor पुराने web की याद दिलाता है :) यह भी उसका अपवाद नहीं है
    • यह एक आरामदेह system है
      9front के Mothra में लिखा गया
  • drawing tablet पर ruler से सीधी रेखा खींचने में अजीब सा मज़ेदार chaos है, लेकिन यह क्यों बुरा है, समझाना मुश्किल है। शायद यह बुरा है भी नहीं
    हो सकता है कि स्वाभाविक सूक्ष्म बदलाव Bresenham line से ज़्यादा अच्छे दिखते हों
    फिर भी यह अच्छी बात है कि compass को tablet की सतह पर सीधे रखने के बजाय onion paper के ऊपर इस्तेमाल किया गया
    • धीरे-धीरे खींचने पर खास तौर से कुछ कृत्रिम लहरापन आना आसान है
      लेकिन ज़्यादातर मामलों में यह ऐसी चीज़ है जिससे सावधानी रखकर बचा जा सकता है, इसलिए कृत्रिम precision से ज़्यादा मैं physical guide इस्तेमाल करने की जोरदार सिफारिश करता हूँ
    • स्कूल में इस्तेमाल होने वाला compass में drawing वाली तरफ कोई भी pen लगाया जा सकता था
      अगर needle वाली तरफ cork wine stopper का टुकड़ा लगा दें तो शायद ठीक काम करेगा :^)
  • @pmjv, अगर triapul.cz और stanleylieber.com दोनों memeplex भी आपके ही हैं… तो आखिर आप समय निकालते कैसे हैं?!
    • दोनों एक ही व्यक्ति के नहीं हैं!