Pampalit-laki at Pampaliit ng Litrato

[ RESULTA ]

Pumili ng litrato para baguhin ang laki.

[ ANO ITO ]

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.

[ MGA TANONG ]

Bakit ayaw nitong tanggapin ang litrato ko mula sa iPhone?

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.

Umaakyat ba kahit saan ang litrato ko?

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.

Bakit karaniwang nakatagilid ang lumalabas na binagong litrato, at ganoon din ba ito?

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.

Nagiging mas malinaw ba ito kapag pinalaki?

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.

Bakit lumaki ang file ko sa halip na lumiit?

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.

Paano gumagana ang “tumutok sa laki ng file”?

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.

Paano kung hindi nito maabot ang laking hiningi ko?

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.

Lumabas na may itim o puting background ang PNG logo ko.

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.

May nawawala bang kalidad kapag binago ang laki ng JPEG?

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.

May limitasyon ba sa laki?

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.

[ ANG KOMPUTASYON ]
Ano ang kayang hawakan ng bawat format
JPEGlitrato, walang alpha
PNGpatag na kulay, may alpha
WebPpareho, mas maliit
Litrato bilang PNGilang beses na mas malaki
Ang canvas ay apat na byte kada pixel habang iginuguhit. Ang litratong 48 megapixel ay mga 190 MB bago pa man may na-encode na kahit isang byte.
[ PAANO TINATAMAAN ANG TARGET NA LAKI ]

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.

[ SUSUNOD ]
86Pang-alis ng Metadata sa LitratoTo strip a photo without re-encoding it
41Gumawa ng QR CodeThe other image this site makes in your browser
44Base64 Encoder / DecoderIf you need the image as text
39Converter ng YunitFor everything that is not pixels
[ MAHALAGA ]

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.