'വര'യില് എന്തുകൊണ്ട് എക്സ്സിഎഫ്?
2024-08-25
ഡിജിറ്റൽ പെയിന്റിങ്ങിനുവേണ്ടി വികസിപ്പിച്ച 'വര'യിൽ ചിത്രരചന പൂർത്തിയാക്കിയശേഷം എക്സ്പോർട്ട് ചെയ്യാനുള്ള സൗകര്യമുണ്ടായിരുന്നെങ്കിലും സേവ് ചെയ്യാന് കഴിയുമായിരുന്നില്ല. മൾട്ടിസെഷൻ പ്രൊജക്റ്റുകള് ചിന്തയിലില്ലാതിരുന്നതുകൊണ്ട് ഇതൊരു പ്രശ്നവുമായിരുന്നില്ല. അതായത്, ഒരാൾ 'വര' തുറക്കും, എന്തെങ്കിലുമൊക്കെ കുത്തിവരയ്ക്കും. എന്നിട്ട് ആ ചിത്രം എക്സ്പോർട്ട് ചെയ്ത് ആപ്ലിക്കേഷൻ ക്ലോസ് ചെയ്യും--ഇത്രയേ തുടക്കത്തില് ഉദ്ദേശിച്ചിരുന്നുള്ളൂ. പക്ഷേ സൗകര്യങ്ങള് കൂടിക്കൂടി വന്നു.
ആദ്യ റിലീസുകളിൽ രണ്ടേ രണ്ട് ലെയറേ ഉണ്ടായിരുന്നുള്ളൂവെങ്കിൽ ഈയടുത്തു വച്ച് എത്ര ലെയർ വേണമെങ്കിലും ആകാം എന്നായി. ലീനീയർ ആർജിബി, ഗാമാ കറക്ഷൻ എന്നീ സംവിധാനങ്ങൾ വന്നു (നിറങ്ങള് കൈകാര്യം ചെയ്യുന്നത് കുറേക്കൂടി ശാസ്ത്രീയമായി എന്ന് ചുരുക്കം). 'വര'യുടെ ഉള്ളിലെ കണക്കുകൂട്ടലുകൾ തുടക്കത്തിൽ തന്നെ ഹൈ ഡൈനാമിക് റേഞ്ച് ഉള്ളതായിരുന്നു (അതായത്, ഒരുപാട് ഷേഡുകള് കൈകാര്യം ചെയ്യാം). ഈ സൗകര്യങ്ങളെല്ലാം ഉള്ളതുകൊണ്ടുതന്നെ അഞ്ചുമിനിറ്റ് കൊണ്ട് ഒരു ചിത്രം കുത്തിവരഞ്ഞ് എക്സ്പോർട്ട് ചെയ്യുന്നതിനപ്പുറം കൂടുതൽ ഗൗരവമുള്ള എന്തെങ്കിലും ചെയ്യാൻ ഒരുപയോക്താവിന് തോന്നിയേക്കാം. അതിന് എക്സ്പോര്ട്ട് സൗകര്യം മാത്രം പോരാ, സേവ് സൗകര്യം കൂടി വേണം.
അങ്ങനെ സേവ് സൗകര്യം ലഭ്യമാക്കാൻ ഒടുവിൽ പണി തുടങ്ങി. ഒഴിവുസമയങ്ങളില് പ്രോഗ്രാം ചെയ്ത് ഒരാഴ്ചകൊണ്ട് തീർക്കുകയും ചെയ്തു. ഓഗസ്റ്റ് 24-ന് പുറത്തിറങ്ങിയ 'വര'യുടെ പുതിയ പതിപ്പിൽ ഡോക്യുമെന്റുകൾ എക്സ്സിഎഫ് ഫോർമാറ്റിൽ) സേവ് ചെയ്യാനുള്ള സൗകര്യമുണ്ട്. പ്രചാരമുള്ള ഇമേജ് എഡിറ്റിങ് ആപ്ലിക്കേഷൻ ആയ ഗിമ്പിന്റെ ഡിഫോൾട്ട് ഫോർമാറ്റ് ആണിത്.
സ്വന്തമായി ഒരു ഫോർമാറ്റ് കണ്ടുപിടിക്കുന്നതിനു പകരം നിലവിലുള്ള ഒരു ഫോർമാറ്റ് ഉപയോഗിച്ചതിനുള്ള കാരണം വ്യക്തമാണ്. 'വര'യിൽ സേവ് ചെയ്ത പ്രോജക്റ്റുകൾ കണ്വേര്ഷനൊന്നുമില്ലാതെതന്നെ മറ്റൊരുപാട് ആപ്ലിക്കേഷനുകളിൽ തുറക്കാനാകുന്നു എന്നതാണൊന്ന്. വര്ഷങ്ങളുടെ ഉപയോഗത്തിലൂടെ ഈ ഫോര്മാറ്റുമായി ബന്ധപ്പെട്ട് പ്രോഗ്രാമിങ് സമൂഹം പഠിച്ച പാഠങ്ങൾ നമുക്കും ഉപകരിക്കുന്നു എന്നതാണ് മറ്റൊന്ന്. പക്ഷേ എന്തുകൊണ്ട് എക്സ്സിഎഫ്? ഡിജിറ്റൽ പെയിൻറിങ് പ്രോജക്ടുകൾ സേവ് ചെയ്യാൻ ഓപ്പൺ റാസ്റ്റർ എന്നൊരു ഫോര്മാറ്റുമുണ്ടല്ലോ.
എന്തുകൊണ്ട് ഓപ്പൺ റാസ്റ്റർ?
ഓപ്പൺ റാസ്റ്ററിന്റെ ഗുണങ്ങൾ എന്താണെന്ന് ആദ്യം പരിശോധിക്കാം. ഇമേജുകൾ എക്സ്പോർട്ട് ചെയ്യാനും വിതരണം ചെയ്യാനും ഉപയോഗിക്കുന്ന ജെയ്പെഗ്, പിഎൻജി തുടങ്ങിയ ഫോർമാറ്റുകൾക്ക് ഏതെങ്കിലും ഒരു പ്രത്യേക ആപ്ലിക്കേഷനുമായി ബന്ധമില്ലെങ്കിലും പ്രോജക്റ്റുകൾ സേവ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന പിഎസ്ഡി (ഫോട്ടോഷോപ്പ്), എക്സ്സിഎഫ് (ഗിമ്പ്), കെആർഎ (ക്രീറ്റ) തുടങ്ങിയ ഫോർമാറ്റുകൾ അതത് ആപ്ലിക്കേഷനുമായി ഇഴുകിച്ചേർന്നുകിടക്കുന്നതാണ്.
ഈ ഫോർമാറ്റുകളുടെ ഉദ്ദേശം ബന്ധപ്പെട്ട ആപ്ലിക്കേഷനുകളിൽ പ്രോജക്ടുകൾ സേവ് ചെയ്യാനും തുറക്കാനും തുടർന്ന് എഡിറ്റ് ചെയ്യാനും അവസരം ഒരുക്കുക എന്നതുമാത്രമാണ്. മറ്റ് ആപ്ലിക്കേഷനുകളിൽ തുറക്കാനാവുക എന്നതിന് ഈ ഫോർമാറ്റുകൾ വലിയ പ്രാധാന്യമൊന്നും കൊടുക്കുന്നില്ല. അതുകൊണ്ടുതന്നെ ഇത്തരം ഫോർമാറ്റുകൾക്ക് മതിയായ ഡോക്യുമെന്റേഷൻ ഉണ്ടാവണമെന്നില്ല. ആപ്ലിക്കേഷന്റെ പുതിയ വേർഷൻ വരുന്നതിനനുസരിച്ച് ഫോർമാറ്റിന്റെ വിശദാംശങ്ങളും മാറിയെന്നു വരാം. ഗിമ്പ് അല്ലാത്ത ആപ്ലിക്കേഷനുകള്ക്ക് എക്സ്സിഎഫ് യോജിക്കില്ലെന്ന് ഔദ്യോഗിക ഡോക്യുമെന്റഷൻ മുന്നറിയിപ്പുതരുന്നത് ഇതൊക്കെക്കൊണ്ടുതന്നെയാണ്.
എന്തുകൊണ്ട് എക്സ്സിഎഫ്?
ഒരു പ്രത്യേക ആപ്ലിക്കേഷനുമായി ബന്ധപ്പെട്ടുകിടക്കാതെ ഡിജിറ്റൽ പെയിന്റിങ് പ്രോജക്റ്റുകൾ സേവ് ചെയ്യാൻ അവസരമൊരുക്കുന്ന ഒരേയൊരു ഫോർമാറ്റ് ഓപ്പൺ റാസ്റ്റർ ആണ്. സ്വാഭാവികമായും 'വര'യുടെ ഡിഫോൾട്ട് പ്രൊജക്റ്റ് ഫോർമാറ്റ് ഇതായിരിക്കണം എന്നായിരുന്നു എന്റെ ആഗ്രഹം. എന്തുകൊണ്ട് ആ തീരുമാനം പിന്നീട് മാറ്റി?
പ്രധാന പ്രശ്നം, ഓപ്പൺ റാസ്റ്റർ ഒരു സിപ് (ZIP) അധിഷ്ഠിത ഫയൽ ഫോർമാറ്റ് ആണെന്നതായിരുന്നു. ഇത് എൻകോഡ് ചെയ്യാനും ഡീക്കോഡ് ചെയ്യാനും കൂടുതൽ അദ്ധ്വാനം ആവശ്യമുണ്ട്. ലൈബ്രറികളെ ആശ്രയിക്കുകയും വേണം. അതേസമയം എക്സ്സിഎഫ് ഫയൽ റൈറ്റ് ചെയ്യാൻ സിയുടെ സ്റ്റാൻഡേർഡ് ലൈബ്രറിയിൽ ലഭ്യമായ ഫങ്ഷനുകൾ തന്നെ മതി. എക്സ്സിഎഫ് തെരഞ്ഞെടുക്കാൻ ഇത്രതന്നെ മതിയായിരുന്നു. എന്നാൽ വീണ്ടും ചില കാരണങ്ങൾ ഈ തീരുമാനത്തെ ശക്തിപ്പെടുത്തി:
- 2006-ൽ തുടങ്ങിയിട്ടുപോലും ഓപ്പൺ റാസ്റ്റർ ഇപ്പോഴും കരടുരൂപത്തിൽ ആണുള്ളത്.
- പല ആപ്ലിക്കേഷനുകളും അവരുടേതായ മാറ്റങ്ങളോടെയാണ് ഓപ്പൺ റാസ്റ്റർ സ്വീകരിച്ചിട്ടുള്ളത്.
- ഓപ്പൺ റാസ്റ്ററിനെ അപേക്ഷിച്ച് എക്സ്സിഎഫിന്റെ ഡോക്യുമെന്റേഷൻ മെച്ചപ്പെട്ടതാണ്. ഇടയ്ക്കിടെ ഫോർമാറ്റ് തന്നെയും ആവശ്യത്തിന് പുതുക്കുന്നുമുണ്ട്.
- ഗിമ്പുമായി അഭേദ്യമായ ബന്ധം ഉണ്ടാകാമെന്ന് മുന്നറിയിപ്പ് തരുന്നുണ്ടെങ്കിലും ഗിമ്പിൽ അങ്ങനെ കുടുങ്ങിക്കിടക്കുന്ന ഒന്നല്ല ഇതുവരെയും എക്സ്സിഎഫ്.
തീർച്ചയായും ഇതെല്ലാം ഇനി മാറിയെന്നു വരാം. എന്തായാലും തത്കാലത്തേക്ക് ഓപ്പൺ റാസ്റ്ററിനുവേണ്ടി ബുദ്ധിമുട്ടുന്നതിൽ അർത്ഥമില്ലെന്നു തോന്നി. ഓപ്പൺ റാസ്റ്ററിനെ താഴ്ത്തിക്കാണിക്കാനല്ല ഇത്രയും എഴുതിയതെന്ന് വ്യക്തമാക്കട്ടെ. ഏറെ പ്രധാനപ്പെട്ട ഉദ്ദേശങ്ങളുള്ള ഒരു പ്രോജക്റ്റാണത്. കഴിയുമെങ്കിൽ അവര്ക്കാവശ്യമായ സഹായം നൽകുക.
ഡിബഗ്ഗിങ്
അടിസ്ഥാനസങ്കേതങ്ങള് മാത്രമേ വേണ്ടൂവെന്നുകരുതി ആപ്ലിക്കേഷനിൽ എക്സ്സിഎഫ് എത്തിക്കുക അത്ര എളുപ്പമുള്ള കാര്യമല്ല. ഈ ഫോർമാറ്റിനും അതിന്റേതായ ചില നൂലാമാലകളുണ്ട്. ഉദാഹരണത്തിന്, പോയിന്ററുകൾ സ്റ്റോർ ചെയ്യാൻ ഫോർമാറ്റിന്റെ പഴയ പതിപ്പുകളിൽ വേണ്ടിയിരുന്നത് നാലുബൈറ്റ് ആയിരുന്നുവെങ്കിൽ പുതിയ പതിപ്പുകളിൽ അത് എട്ടുബൈറ്റ് ആണ്. നമ്പറുകൾ സ്റ്റോർ ചെയ്യുന്നത് ബിഗ് എന്ഡിയന് ഫോർമാറ്റിലാണ്. ചില ഫീൽഡുകൾ ഫയലിൽ ഉണ്ടാകുമോ, അവയ്ക്ക് സ്വീകാര്യമായ മൂല്യങ്ങൾ എന്തൊക്കെയാണ് എന്നതെല്ലാം ഫോർമാറ്റിന്റെ വേർഷനെ ആശ്രയിച്ചിരിക്കുന്നു. പക്ഷെ വേർഷനിങ് ഉണ്ടെന്നതും അക്കാര്യം ഡോക്യുമെന്റേഷനിൽ പറയുന്നുണ്ട് എന്നതും ഒരു ഗുണമാണ്.
ഹെക്സ് എഡിറ്ററുകളും ഗിമ്പിൽ തന്നെയുള്ള ലോഗിങ് സൗകര്യവും 'വര'യിൽ നിന്ന് സേവ് ചെയ്ത എക്സ്സിഎഫ് ഫയലുകൾ പരീക്ഷിച്ചുനോക്കാൻ സഹായിച്ചു. മറ്റേതെങ്കിലും എക്സ്സിഎഫ് റൈറ്ററിന്റെ സോഴ്സ് കോഡ് പരീക്ഷിച്ചല്ല വരയിലെ എക്സ്സിഎഫ് സേവ് സംവിധാനം വികസിപ്പിച്ചത്. അതേസമയം ഒരു എക്സ്സിഎഫ് റീഡറിന്റെ കോഡിൽ മാറ്റം വരുത്തിപ്പരീക്ഷിച്ചത് തുടക്കത്തിലെ ടെസ്റ്റുകൾക്ക് ഉപകരിച്ചു. ഇമേജ് മാജിക്കിന്റെ എക്സ്സിഎഫ് റീഡിങ് കോഡ് മാറ്റി അതിൽ കൂടുതൽ ഡീബഗ് മെസേജുകൾ ചേർക്കുകയാണ് ചെയ്തത്. തുടർന്ന് 'വര'യുടെ എക്സ്സിഎഫ് ഔട്ട്പുട്ടുകൾ ഇമേജ് മാജിക്കിനെക്കൊണ്ട് റീഡ് ചെയ്യിച്ചു. ഇമേജ് മാജിക്കിനെപ്പോലൊരു റീഡർ ഒരു എക്സ്സിഎഫ് ഫയലിൽ പ്രതീക്ഷിക്കുന്നത് എന്താണെന്നും എന്റെ എക്സ്സിഎഫ് ഔട്ട്പുട്ടുകളിൽ ഇല്ലാതെപോകുന്നത് എന്താണെന്നും മനസിലാക്കാൻ ഇത് സഹായിച്ചു.
Nandakumar Edamana
Tags: vara
Read more from Nandakumar at nandakumar.org/blog/