Pumili ng litrato para baguhin ang laki.
Ang teleponong nakatagilid ang hawak ay nag-iimbak ng litratong nakatagilid, at may maliit na tag na nagsasabi kung saan ang itaas.
Ginagalang ng bawat viewer ang tag na iyon. Hindi ito ginagalang ng canvas maliban kung sasabihan — at walang tag ang na-export ng canvas, kaya kapag naiguhit muli ang litrato, wala na ang impormasyon at paikot na ito habambuhay. Iyan ang dahilan kung bakit paikot ang lumalabas sa halos bawat pampalit-laki sa web.
Binabasa dito ang tag gamit ang parehong parser ng Pang-alis ng Metadata, at iniikot ang mismong pixel bago mag-save. Iisa lang ang nakakaalam kung saan ang itaas.
At may dalawang bagay na walang kagamitang makakapagbigay sa iyo.
Hindi nagdaragdag ng detalye ang paglaki. Pinupunan lang ang pagitan ng mga pixel na mayroon, kaya ang nakukuha ay mas makinis at mas malabong bersiyon ng parehong litrato.
At may nawawala sa tuwing ine-encode muli ang JPEG, kahit sa kalidad na 100 — ibig sabihin noon ay “quantise nang kakaunti hangga’t maaari”, hindi “huwag mag-quantise”. Kaya nga walang canvas na ginagamit ang Pang-alis ng Metadata sa tabi nito.
Dahil HEIC ang isinusulat ng iPhone bilang default, at walang browser maliban sa Safari sa kagamitang Apple ang kayang mag-decode nito — pag-aari ng operating system ang codec at hindi ng browser. Ang pagbasa nito dito ay mangangahulugan ng pag-download ng ilang megabyte na decoder bago pa mabuksan ang litrato mo, at hindi iyon pinasan ng pahinang ito. Dalawang paraan para malampasan ito: itakda ang Camera sa Most Compatible sa Settings para JPEG ang isulat ng telepono, o i-share ang litrato mula sa Photos, na nagko-convert nito sa daan. Alinman doon, JPEG ang makukuha mo at kakayanin ito ng pahinang ito.
Hindi. Binabasa ang file mula sa disk mo papunta sa tab na ito ng browser, binabago ang laki ng mismong browser, at ibinabalik bilang download. Walang upload at walang server — kaya mong bantayan ang network tab habang ginagamit ito. Ang bawat ibang pampalit-laki na humihinging mag-upload ka muna ay nasa disk na ng iba ang litrato mo bago pa ito gumawa ng kahit ano.
Ang teleponong nakatagilid ang hawak ay nag-iimbak ng litratong nakatagilid kasama ang tag na nagsasabi kung saan ang itaas. Ginagalang ng mga viewer ang tag; hindi ito ginagalang ng canvas maliban kung sasabihan — at walang tag ang na-export ng canvas, kaya kapag naiguhit muli ang litrato ay wala na ang impormasyon at mananatili itong paikot. Binabasa mismo ng pahinang ito ang tag at iniikot ang mga pixel patungo sa tamang tayo bago mag-save, kaya tuwid ang resulta habambuhay.
Hindi, at walang kagamitang makakagawa niyan. Ang paglaki ay pumupuno sa pagitan ng mga pixel na umiiral; hindi nito mababawi ang detalyeng hindi naman nakuhanan. Ang nakukuha mo ay mas makinis at mas malabong bersiyon ng parehong litrato sa mas malaking sukat. Sinasabi ito ng pahina kapag humingi ka nito, sa halip na tahimik na ibigay.
Karaniwang isa sa dalawang dahilan. Ang pag-save ng litrato bilang PNG ay ginagawa itong ilang beses na mas malaki — lossless ang PNG at napakasama nitong mag-imbak ng litrato, at para ito sa patag na kulay at matalim na gilid. O kaya ay mas mataas ang kalidad kaysa sa pagkaka-encode ng orihinal, at sa gayon ay mas maraming byte ang ginagamit ng encoder para ingatan ang mga artefact ng compression na naroon na.
Ine-encode nito ang imahen nang ilang beses sa iba’t ibang setting ng kalidad at pinapanatili ang pinakamagandang kasya, na pinapaliit ang saklaw sa bawat ikot. Walang pormula para dito: ang parehong kalidad na nagbibigay ng 180 KB sa isang portrait ay nagbibigay ng 900 KB sa litrato ng mga dahon, kaya ang tanging tapat na paraan para tamaan ang target ay subukan. Humihinto ito pagkatapos ng walong pagsubok at sinasabi kung anong kalidad ang pinagtigilan nito.
Sinasabi nito, at ibinibigay ang pinakamaliit na file na kaya nitong gawin. Lampas sa isang punto, hindi na mapapaliit ang litrato sa pamamagitan ng pagtatapon pa ng detalye — nasa sahig na ang kalidad at ang natitira ay ang dami mismo ng pixel. Bawasan mo rin ang sukat at kakasya na ito.
JPEG iyan, at wala itong transparency — kailangang maging kung ano ang bawat pixel na dapat sana ay nakikita ang likod. Pinipintahan ito ng pahinang ito ng puti sa halip na iwang itim, at iyon ang inaasahan ng karamihan, at nagbababala ito bago ka mag-download kapag may transparency nga ang imahen. I-save ito bilang PNG o WebP para mapanatili ito.
Oo, palagi, kahit sa kalidad na 100 — ang ibig sabihin ng setting na iyon ay “mag-quantise nang kakaunti hangga’t maaari”, hindi “huwag mag-quantise”. Dini-decode, sinasala muli at kina-quantise muli ang mga bloke, at bawat ikot ay bahagyang nagpapalabo nito. Kung ang gusto mo lang naman ay alisin ang metadata, ginagawa iyon ng Pang-alis ng Metadata sa Litrato nang walang ini-encode muli.
Dalawa, at parehong tungkol sa memorya at hindi sa patakaran. May takda ang mismong file kung saan sinasabi ng pahina, at may takda ang lumalabas sa 20,000 pixel kada gilid — mga apat na byte kada pixel ang kailangan ng canvas habang iginuguhit, kaya ang imaheng 48 megapixel ay mga 190 MB bago pa ma-encode ang kahit isang byte. Iyan na ang halos lahat ng ibibigay ng browser ng telepono sa isang tab.
Walang pormula. Ang parehong kalidad na nagbibigay ng 180 KB sa isang portrait ay nagbibigay ng 900 KB sa litrato ng mga dahon — mas maraming detalye, mas maraming byte. Kaya ine-encode ito nang paulit-ulit at pinapaliit ang saklaw sa bawat ikot, hanggang walong pagsubok. Ang tanging tapat na paraan ay subukan.
The photo is read and redrawn in your browser and nothing about it is transmitted or stored. Resizing re-encodes the image, so some quality is always lost — and the result carries no metadata at all, including the orientation tag, which is why the pixels are turned the right way up before saving. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.