ഈ ടൂളിനെ കുറിച്ച്
SVG (സ്കേലബിൾ വെക്റ്റർ ഗ്രാഫിക്സ്) ചിത്രങ്ങളെ വിവരിക്കുന്നത് ജ്യാമിതീയ പ്രാകൃതങ്ങളുടെ ഒരു കൂട്ടമാണ് - പാതകൾ, ആകൃതികൾ, ടെക്സ്റ്റ്, ഗ്രേഡിയൻ്റുകൾ - അത് ഗുണനിലവാരം നഷ്ടപ്പെടാതെ ഏത് വലുപ്പത്തിലേക്കും സ്കെയിൽ ചെയ്യുന്നു. PNG ഒരു ചതുരാകൃതിയിലുള്ള പിക്സൽ ഗ്രിഡ് ഒരു നിശ്ചിത റെസല്യൂഷനിൽ സംഭരിക്കുന്നു. എസ്വിജിയെ പിഎൻജിയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നത് ഒരു റാസ്റ്ററൈസേഷൻ ഘട്ടമാണ്: എസ്വിജിയുടെ ഡ്രോയിംഗ് നിർദ്ദേശങ്ങൾ തിരഞ്ഞെടുത്ത പിക്സൽ വലുപ്പത്തിൽ വിലയിരുത്തുകയും തത്ഫലമായുണ്ടാകുന്ന ബിറ്റ്മാപ്പ് പിഎൻജി ആയി എൻകോഡ് ചെയ്യുകയും ചെയ്യുന്നു. നിങ്ങൾ വ്യക്തമാക്കിയ വലുപ്പത്തിൽ ഔട്ട്പുട്ട് മികച്ചതായി കാണപ്പെടുന്നു, എന്നാൽ സ്കെയിൽ അപ്പ് ചെയ്താൽ പിക്സലേറ്റുകൾ.
ബ്രൗസറിൻ്റെ ബിൽറ്റ്-ഇൻ SVG എഞ്ചിൻ ഉപയോഗിച്ച് ഈ കൺവെർട്ടർ SVG റെൻഡർ ചെയ്യുന്നു. SVG ഒരു ഇമേജ് എലമെൻ്റിലേക്ക് ലോഡുചെയ്ത്, തിരഞ്ഞെടുത്ത ഔട്ട്പുട്ട് അളവുകളിൽ ഒരു HTML5 ക്യാൻവാസിലേക്ക് വരച്ച്, canvas.toBlob വഴി PNG ആയി എക്സ്പോർട്ടുചെയ്യുന്നു. ബ്രൗസർ റാസ്റ്ററൈസേഷൻ ചെയ്യുന്നതിനാൽ, സങ്കീർണ്ണമായ SVG സവിശേഷതകൾ - ഗ്രേഡിയൻ്റുകൾ, ഫിൽട്ടറുകൾ, മാസ്ക്കുകൾ, ആനിമേഷനുകൾ ഒരു സ്റ്റാറ്റിക് ഫ്രെയിമായി - ഒരു യഥാർത്ഥ വെബ്പേജിൽ ചെയ്യുന്ന അതേ രീതിയിൽ റെൻഡർ ചെയ്യുന്നു.
SVG-to-PNG പരിവർത്തനത്തിലെ ഏറ്റവും പ്രധാനപ്പെട്ട തീരുമാനം ടാർഗെറ്റ് വലുപ്പമാണ്. SVG റെസല്യൂഷൻ-സ്വതന്ത്രമാണ്, അതിനാൽ യഥാർത്ഥ ഉപയോഗവുമായി പൊരുത്തപ്പെടുന്ന PNG വലുപ്പം തിരഞ്ഞെടുക്കുന്നത് ഓവർ പ്രൊവിഷനിംഗും (ലഘുചിത്ര വലുപ്പത്തിലുള്ള ഐക്കണുകൾക്കുള്ള വലിയ ഫയലുകൾ) അണ്ടർ പ്രൊവിഷനിംഗും ഒഴിവാക്കുന്നു (പിന്നീട് സ്കെയിൽ ചെയ്യുമ്പോൾ ഔട്ട്പുട്ട് മങ്ങുന്നു). പൊതുവായ ലക്ഷ്യങ്ങൾ: ഐക്കണുകൾക്ക് 32×32 അല്ലെങ്കിൽ 64×64, ലോഗോകൾക്ക് 256×256 അല്ലെങ്കിൽ 512×512, ഹീറോ ഗ്രാഫിക്സിന് 1024×1024, റെറ്റിന നിലവാരമുള്ള അസറ്റുകൾക്ക് 2048×2048.
എന്തുകൊണ്ട് SVG- ലേക്ക് PNG പരിവർത്തനം ചെയ്യുന്നു
SVG വെബിനും ആധുനിക ഡിസൈൻ ടൂളുകൾക്കും അതിശയകരമാണ്, എന്നാൽ മറ്റ് പല സന്ദർഭങ്ങളിലും ഭയങ്കരമാണ്. ഇമെയിൽ ക്ലയൻ്റുകൾ SVG പൊരുത്തമില്ലാത്ത രീതിയിൽ റെൻഡർ ചെയ്യുന്നു; ചിലർ ഇത് ഒരു സുരക്ഷാ അപകടമായി തടയുന്നു. പഴയ ഓഫീസ് സോഫ്റ്റ്വെയർ, ചില CMS-കൾ, മൂന്നാം-കക്ഷി സേവനങ്ങൾ, മിക്കവാറും എല്ലാ ഫോട്ടോ പ്രിൻ്റ് പൈപ്പ്ലൈനുകളും SVG-യെ അംഗീകരിക്കുന്നില്ല. PNG-ലേക്ക് പരിവർത്തനം ചെയ്യുന്നത് തിരഞ്ഞെടുത്ത വലുപ്പത്തിൽ സമാനമായി കാണപ്പെടുന്ന സാർവത്രികമായി അംഗീകരിക്കപ്പെട്ട ഒരു റാസ്റ്റർ നിർമ്മിക്കുന്നു.
സ്വീകർത്താവിൻ്റെ SVG റെൻഡററെ ആശ്രയിക്കാതെ തന്നെ PNG ഓഫീസ് ഡോക്യുമെൻ്റുകൾ, സ്ലൈഡ് ഡെക്കുകൾ, PDF-കൾ എന്നിവയിൽ വിശ്വസനീയമായി ഉൾച്ചേർക്കുന്നു. പല പ്ലാറ്റ്ഫോമുകളിലും സ്ഥിരമായി ദൃശ്യമാകേണ്ട ലോഗോകൾക്കും ഗ്രാഫിക്സിനും, PNG ആണ് സുരക്ഷിതമായ ചോയ്സ് - അത് SVG-യെ ആകർഷകമാക്കുന്ന റെസല്യൂഷൻ-സ്വാതന്ത്ര്യം നഷ്ടപ്പെടുമെങ്കിലും.
സാങ്കേതിക വിശദാംശങ്ങൾ
പാതകൾ, അടിസ്ഥാന രൂപങ്ങൾ (റെക്ട്, സർക്കിൾ, ദീർഘവൃത്തം, രേഖ, ബഹുഭുജം, പോളിലൈൻ), ടെക്സ്റ്റ്, ഗ്രേഡിയൻ്റുകൾ (ലീനിയർഗ്രേഡിയൻ്റ്, റേഡിയൽഗ്രേഡിയൻ്റ്), ഫിൽട്ടറുകൾ, മാസ്കുകൾ, ക്ലിപ്പ് പാഥുകൾ എന്നിവയ്ക്കായുള്ള ഘടകങ്ങളുള്ള ഒരു XML അടിസ്ഥാനമാക്കിയുള്ള വെക്റ്റർ ഫോർമാറ്റാണ് SVG (W3C ശുപാർശ). ബ്രൗസർ XML പാഴ്സ് ചെയ്യുന്നു, ഒരു DOM നിർമ്മിക്കുന്നു, CSS പ്രയോഗിക്കുന്നു, പേജ് റെൻഡറിംഗ് സമയത്ത് ഫലം റാസ്റ്ററൈസ് ചെയ്യുന്നു.
ഈ കൺവെർട്ടർ SVG-നെ ഒരു HTMLImageElement-ലേക്ക് ലോഡുചെയ്യുന്നു (ഇത് ബ്രൗസറിൻ്റെ സാധാരണ SVG-ആസ്-ഇമേജ് റെൻഡറിംഗ് പാതയെ പ്രവർത്തനക്ഷമമാക്കുന്നു), തുടർന്ന് അതിനെ drawImage വഴി ഒരു ക്യാൻവാസിലേക്ക് ആകർഷിക്കുന്നു. canvas.toBlob('image/png') ഉപയോഗിച്ച് ക്യാൻവാസ് PNG ആയി കയറ്റുമതി ചെയ്യുന്നു. ഔട്ട്പുട്ടിലെ കൃത്യമായ പിക്സലുകൾ ഒരു ബ്രൗസർ ടാബിൽ SVG അതേ വലുപ്പത്തിൽ റെൻഡർ ചെയ്യുന്നതുമായി പൊരുത്തപ്പെടുന്നു.
എഡ്ജ് കേസുകൾ: ഇമേജ് എലമെൻ്റ് വഴി ഉപയോഗിക്കുമ്പോൾ വിദേശ ഒബ്ജക്റ്റ് ഉപയോഗിക്കുന്ന SVG എപ്പോഴും പിന്തുണയ്ക്കില്ല. CORS കാരണം SVG റഫറൻസ് ചെയ്യുന്ന ബാഹ്യ ഉറവിടങ്ങൾ (xlink:href മറ്റൊരു ഡൊമെയ്നിലേക്ക്) ലോഡ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടേക്കാം. SMIL ആനിമേഷനുകളും JavaScript-അധിഷ്ഠിത ആനിമേഷനുകളും പ്രാരംഭ ഫ്രെയിം മാത്രമായി റെൻഡർ ചെയ്യുന്നു.
പതിവ് ചോദ്യങ്ങള്
- PNG-ലേക്ക് പരിവർത്തനം ചെയ്യുമ്പോൾ എൻ്റെ SVG നിലവാരം നഷ്ടപ്പെടുമോ?
- വെക്ടർ-ടു-റാസ്റ്റർ പരിവർത്തനം എന്നതിനർത്ഥം ചിത്രം പിക്സൽ അധിഷ്ഠിതമാകുകയും അനന്തമായി സ്കെയിൽ ചെയ്യാൻ കഴിയില്ല. നിങ്ങൾ ഉദ്ദേശിക്കുന്ന ഡിസ്പ്ലേ വലുപ്പത്തിൽ PNG മൂർച്ചയുള്ളതായി കാണുന്നുവെന്ന് ഉറപ്പാക്കാൻ ഉയർന്ന റെസല്യൂഷൻ തിരഞ്ഞെടുക്കുക.
- PNG ഫോർമാറ്റ് എന്തിനുവേണ്ടിയാണ് ഉപയോഗിക്കുന്നത്?
- PNG (പോർട്ടബിൾ നെറ്റ്വർക്ക് ഗ്രാഫിക്സ്) പ്രധാനമായും സുതാര്യത, സ്ക്രീൻഷോട്ടുകൾ, ലോഗോകൾ, ഐക്കണുകൾ എന്നിവയുള്ള ഗ്രാഫിക്സിനായി ഉപയോഗിക്കുന്നു.
- അറിഞ്ഞിരിക്കേണ്ട എന്തെങ്കിലും പരിമിതികൾ ഉണ്ടോ?
- 50MB വരെയുള്ള ഫയലുകൾ പിന്തുണയ്ക്കുന്നു. വളരെ വലുതോ സങ്കീർണ്ണമോ ആയ ഫയലുകൾ പ്രോസസ്സ് ചെയ്യാൻ കൂടുതൽ സമയമെടുത്തേക്കാം. എല്ലാ പരിവർത്തനങ്ങളും നിങ്ങളുടെ ബ്രൗസറിൽ നടക്കുന്നു, അതിനാൽ പ്രോസസ്സിംഗ് വേഗത നിങ്ങളുടെ ഉപകരണത്തെ ആശ്രയിച്ചിരിക്കുന്നു.
- പരിവർത്തന സമയത്ത് എൻ്റെ ചിത്രങ്ങൾ സ്വകാര്യമായി സൂക്ഷിക്കുന്നുണ്ടോ?
- അതെ. ക്യാൻവാസ് API, JavaScript എന്നിവ ഉപയോഗിച്ച് നിങ്ങളുടെ SVG ഫയലുകൾ പൂർണ്ണമായും നിങ്ങളുടെ ബ്രൗസറിലാണ് പ്രോസസ്സ് ചെയ്യുന്നത്. ഒരു സെർവറിലേക്കും ഒന്നും അപ്ലോഡ് ചെയ്യപ്പെടുന്നില്ല - ഫയൽ നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് നേരിട്ട് കൺവെർട്ടറിലേക്കും തിരികെ നിങ്ങളുടെ ഉപകരണത്തിലേക്കും പോകുന്നു.
- ടെക്സ്റ്റ് ടെക്സ്റ്റായോ പാതകളായോ റെൻഡർ ചെയ്തിട്ടുണ്ടോ?
- ഔട്ട്പുട്ട് PNG-ൽ ടെക്സ്റ്റ് പിക്സലുകളായി റാസ്റ്ററൈസ് ചെയ്തു. ഔട്ട്പുട്ട് ഇനി തിരയാനോ തിരഞ്ഞെടുക്കാനോ കഴിയില്ല. ബ്രൗസറിൽ ലഭ്യമല്ലാത്ത ഫോണ്ടുകളാണ് നിങ്ങളുടെ SVG ഉപയോഗിക്കുന്നതെങ്കിൽ, ടെക്സ്റ്റ് ഒരു ഫാൾബാക്ക് ഫോണ്ടിൽ റെൻഡർ ചെയ്തേക്കാം; ഗ്യാരണ്ടീഡ് ഭാവത്തിനായി റെൻഡർ ചെയ്യുന്നതിന് മുമ്പ് ടെക്സ്റ്റ് എസ്വിജിയിലെ പാതകളിലേക്ക് പരിവർത്തനം ചെയ്യുക.
- എൻ്റെ SVG ഒരു സെർവറിലേക്ക് അപ്ലോഡ് ചെയ്തിട്ടുണ്ടോ?
- ഇല്ല. SVG പാഴ്സിംഗും റെൻഡറിംഗും നിങ്ങളുടെ ബ്രൗസറിൽ നടക്കുന്നു; നിങ്ങളുടെ ബ്രൗസറിൽ PNG എൻകോഡിംഗ് സംഭവിക്കുന്നു. ഫയൽ നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് പുറത്തുപോകില്ല.
- എന്തുകൊണ്ടാണ് എൻ്റെ പരിവർത്തനം ചെയ്ത PNG ശൂന്യമായിരിക്കുന്നത്?
- പൊതുവായ കാരണങ്ങൾ: CORS കാരണം ലോഡ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ട ബാഹ്യ ചിത്രങ്ങൾ SVG റഫറൻസ് ചെയ്യുന്നു; ഇമേജ്-എലമെൻ്റ് റെൻഡറിംഗ് പാത്ത് (foreignObject, ചില ഫിൽട്ടറുകൾ) പിന്തുണയ്ക്കാത്ത സവിശേഷതകൾ SVG ഉപയോഗിക്കുന്നു; SVG-ക്ക് സീറോ-ഡൈമൻഷണൽ വ്യൂബോക്സ് ഉണ്ട്. പരിവർത്തനം ചെയ്യുന്നതിന് മുമ്പ് അത് റെൻഡർ ചെയ്യുന്നുവെന്ന് സ്ഥിരീകരിക്കുന്നതിന് ഒരു ബ്രൗസറിൽ SVG നേരിട്ട് തുറക്കുക.
- എനിക്ക് ഒരു സ്ക്രിപ്റ്റിൽ SVG-യെ PNG-ലേക്ക് പരിവർത്തനം ചെയ്യാൻ കഴിയുമോ?
- അതെ — ബാച്ച് ജോലികൾക്കായി, ഷാർപ്പ് അല്ലെങ്കിൽ പപ്പറ്റീർ ഉപയോഗിച്ചുള്ള Node.js സജ്ജീകരണം ബ്രൗസറിന് സമാനമായ വിശ്വസ്തതയോടെ SVG-യെ PNG-ലേക്ക് റെൻഡർ ചെയ്യുന്നു. ഒന്നും ഇൻസ്റ്റാൾ ചെയ്യാതെ ബ്രൗസറിൽ ഒറ്റത്തവണ പരിവർത്തനം ചെയ്യാനുള്ളതാണ് ഈ ഉപകരണം.