Tungkol sa tool na ito
Inilalarawan ng SVG (Scalable Vector Graphics) ang mga larawan bilang isang hanay ng mga geometric na primitive — mga path, hugis, text, gradient — na sukat sa anumang laki nang hindi nawawala ang kalidad. Ang PNG ay nag-iimbak ng isang parihabang pixel grid sa isang nakapirming resolution. Ang pag-convert ng SVG sa PNG ay isang hakbang sa rasterization: ang mga tagubilin sa pagguhit ng SVG ay sinusuri sa napiling laki ng pixel at ang resultang bitmap ay naka-encode bilang PNG. Ang output ay mukhang malutong sa laki na iyong tinukoy ngunit pixelates kung pinalaki.
Ang converter na ito ay nagre-render ng SVG gamit ang built-in na SVG engine ng browser. Ang SVG ay na-load sa isang elemento ng Larawan, iginuhit sa isang HTML5 canvas sa napiling mga sukat ng output, at na-export bilang PNG sa pamamagitan ng canvas.toBlob. Dahil ginagawa ng browser ang rasterization, ang mga kumplikadong feature ng SVG — mga gradient, mga filter, mga mask, mga animation bilang isang static na frame — ay nagre-render sa parehong paraan na ginagawa nila sa isang tunay na webpage.
Ang pinakamahalagang desisyon sa SVG-to-PNG conversion ay ang laki ng target. Ang SVG ay resolution-independent, kaya ang pagpili ng PNG size na tumutugma sa aktwal na paggamit ay maiiwasan ang sobrang provisioning (malaking file para sa thumbnail-sized na mga icon) at under-provisioning (blurry na output kapag na-scale up sa ibang pagkakataon). Mga karaniwang target: 32×32 o 64×64 para sa mga icon, 256×256 o 512×512 para sa mga logo, 1024×1024 para sa hero graphics, 2048×2048 para sa mga asset na may kalidad ng retina.
Bakit I-convert ang SVG sa PNG
Ang SVG ay kahanga-hanga para sa web at modernong mga tool sa disenyo ngunit kakila-kilabot para sa maraming iba pang mga konteksto. Ang mga email client ay nag-render ng SVG nang hindi pare-pareho; hinaharangan ito ng ilan bilang panganib sa seguridad. Ang mas lumang software ng opisina, ilang mga CMS, mga serbisyo ng third-party, at halos lahat ng pipeline ng pag-print ng larawan ay hindi tumatanggap ng SVG. Ang pag-convert sa PNG ay gumagawa ng isang pangkalahatang tinatanggap na raster na mukhang magkapareho sa napiling laki.
Mapagkakatiwalaan ding nag-e-embed ang PNG sa mga dokumento ng opisina, slide deck, at PDF nang hindi umaasa sa SVG renderer ng tatanggap. Para sa mga logo at graphics na kailangang lumabas nang tuluy-tuloy sa maraming platform, PNG ang mas ligtas na pagpipilian — kahit na nawawala ang resolution-independence na ginagawang kaakit-akit ang SVG sa simula pa lang.
Mga Detalye ng Teknikal
Ang SVG (W3C Recommendation) ay isang XML-based na vector format na may mga elemento para sa mga path, mga pangunahing hugis (rect, circle, ellipse, line, polygon, polyline), text, gradients (linearGradient, radialGradient), mga filter, mask, at clip path. Pina-parse ng browser ang XML, bumubuo ng DOM, naglalapat ng CSS, at nira-rasterize ang resulta habang nagre-render ng page.
Nilo-load ng converter na ito ang SVG sa isang HTMLImageElement (na nagti-trigger sa normal na SVG-as-image rendering path ng browser), pagkatapos ay iguguhit ito sa isang canvas sa pamamagitan ng drawImage. Ang canvas ay na-export bilang PNG gamit ang canvas.toBlob('image/png'). Ang eksaktong mga pixel sa output ay tumutugma sa kung ano ang ire-render ng SVG sa parehong laki sa isang tab ng browser.
Edge cases: Ang SVG na gumagamit ng foreignObject ay hindi palaging sinusuportahan kapag ginamit sa pamamagitan ng Image element. Maaaring mabigong ma-load ang SVG na tumutukoy sa mga panlabas na mapagkukunan (xlink:href sa ibang domain) dahil sa CORS. Ang mga SMIL animation at JavaScript-driven na animation ay nagre-render bilang paunang frame lamang.
Mga madalas itanong
- Mawawalan ba ng kalidad ang aking SVG kapag na-convert sa PNG?
- Ang pag-convert ng vector-to-raster ay nangangahulugang nagiging pixel-based ang imahe at hindi na masusukat nang walang hanggan. Pumili ng mataas na resolution upang matiyak na ang PNG ay mukhang matalas sa iyong nilalayon na laki ng display.
- Para saan ginagamit ang PNG na format?
- Pangunahing ginagamit ang PNG (Portable Network Graphics) para sa mga graphics na may transparency, mga screenshot, mga logo, mga icon.
- Mayroon bang anumang mga limitasyon na dapat malaman?
- Sinusuportahan ang mga file na hanggang 50MB. Maaaring mas matagal bago maproseso ang napakalaki o kumplikadong mga file. Ang lahat ng conversion ay nangyayari sa iyong browser, kaya ang bilis ng pagproseso ay nakasalalay sa iyong device.
- Pinananatiling pribado ba ang aking mga larawan sa panahon ng conversion?
- Oo. Ang iyong mga SVG file ay ganap na pinoproseso sa loob ng iyong browser gamit ang Canvas API at JavaScript. Walang na-upload sa anumang server — direktang pupunta ang file mula sa iyong device patungo sa converter at pabalik sa iyong device.
- Ang teksto ba ay nai-render bilang teksto o bilang mga landas?
- Ang teksto ay rasterized bilang mga pixel sa output PNG. Ang output ay hindi na mahahanap o mapipili. Kung ang iyong SVG ay gumagamit ng mga font na hindi available sa browser, maaaring mag-render ang text sa isang fallback na font; i-convert ang text sa mga path sa SVG bago i-render para sa garantisadong hitsura.
- Na-upload ba ang aking SVG sa isang server?
- Hindi. Nangyayari ang pag-parse at pag-render ng SVG sa iyong browser; Nangyayari ang PNG encoding sa iyong browser. Ang file ay hindi umaalis sa iyong device.
- Bakit blangko ang aking na-convert na PNG?
- Mga karaniwang sanhi: ang SVG ay tumutukoy sa mga panlabas na larawan na nabigong mag-load dahil sa CORS; ang SVG ay gumagamit ng mga feature na hindi sinusuportahan ng Image-element rendering path (foreignObject, ilang mga filter); ang SVG ay may zero-dimensional na viewBox. Buksan ang SVG nang direkta sa isang browser upang kumpirmahin na ito ay nagre-render bago mag-convert.
- Maaari ko bang i-convert ang SVG sa PNG sa isang script?
- Oo — para sa mga batch na trabaho, ang isang Node.js setup gamit ang sharp o puppeteer ay nagre-render ng SVG sa PNG na may katulad na katapatan sa browser. Ang tool na ito ay para sa mga one-off na conversion sa browser nang hindi nag-i-install ng kahit ano.