Šiandieniniame pasaulyje, kuriame vizualūs vaizdai atlieka svarbų vaidmenį, efektyvus nuotraukų valdymas internetinėse programose yra būtinas. Daugelis programų turi keisti nuotraukų dydį, kad jas pritaikytų vienodai. Šiame vadove parodysiu, kaip tai padaryti PHP programoje, skalpuodami įkeltas nuotraukas taip, kad jos turėtų vienodą aukštį.

Svarbiausios išvados

  • Nuotraukų keitimas pagerina programos vartotojo patirtį ir įkėlimo greitį.
  • Keitimas vyksta remiantis pločio ir aukščio skaičiavimais, išlaikant proporcijas.
  • Arhivavimas arba kešavimo sprendimai yra svarbūs, kad būtų taupomos sistemos ištekliai.

Žingsnis po žingsnio instrukcija

1. Sukurk nuotraukų valdiklį

Visų pirma, sukurk naują valdiklį, kurį pavadinsime ImageController.php. Šiame valdiklyje įgyvendinsite veiksmą, kuris rodys nuotraukas. Veiksmas gaus ID kaip parametrą, kad gautų konkrečią nuotrauką.

Efektyvus vaizdo mastelio keitimas PHP taikomuosiuose programuose

Byloje apibrėžiate klasę ir atitinkamus metodus. Tarp jų yra viewAction metodas, kuriame perduodate ID kaip parametrą ir nustatote nuotraukos plotį. Pradedame nuo standartinio 250.

Efektyvus paveikslėlių dydžio keitimas PHP taikomosiose programose

2. Gauk nuotraukų duomenis

Visų pirma, turite gauti nuotraukų duomenis naudodami utilitų klasę. Tegu, turite jau sukurtą klasę ImageUtility, kuri teikia render metodą. Šis metodas naudos nuotraukos ID ir plotį kaip parametrus.

Efektyvus vaizdų mastelio keitimas PHP programose

Kuriame antraštę Content-Type, kad užtikrintume, jog nuotraukos yra tinkamai tvarkomos kaip JPEG failai.

3. Įgyvendink keitimo logiką

Sukurkite renderImage metodą ImageUtility klasėje. Šis metodas priima nuotraukos ID ir aukštį kaip parametrus. Čia mes taip pat dinaminiu budu apskaičiuosime plotį, kad nuotraukos būtų rodomos pageidaujamu aukščiu.

Efektyvus vaizdų skalavimas PHP programose

Papildykite kodą, kad gautumėte nuotraukų duomenis iš duomenų bazės, remiantis perduota nuotraukos ID. Įsitikinkite, kad turite metodą savo išteklių modelyje, kad gautumėte nuotraukų duomenis.

Efektyvus vaizdo keitimas PHP programose

4. Apskaičiuok naują plotį

Dabar atėjo laikas apskaičiuoti naują plotį. Tuo pačiu metu mes nuskaitysime originalų nuotraukos plotį ir aukštį, kad išlaikytume proporcijas.

Ekrano nuotrauka_567

5. Sukurk naują nuotrauką

Po to, kai buvo apskaičiuotas naujas plotis, sukuri naują nuotrauką naudodamas funkciją imagecreatetruecolor(). Šioje funkcijoje nurodote naują plotį ir aukštį.

Efektyvi vaizdo skalė PHP programose

Paskui naudokite funkciją imagecopyresized(), kad originalią nuotrauką pakeistumėte naujomis išmatuotomis dimensijomis.

Efektyvus vaizdų keitimas PHP programose

6. Grąžink suplanuotą nuotrauką

Norėdami sėkmingai grąžinti nuotrauką naršyklei, naudokite išvesties buferį. Naudokite imagejpeg() arba imagepng(), priklausomai nuo to, kokią formatą naudojate.

Visada reikia užtikrinti, kad buferis būtų išvalytas, kad būtų išvengta atminties nuotėkio. Galiausiai grąžinkite duomenis iš funkcijos, kad būtų rodomas nuotrauka.

Efektyvus vaizdų mastelio keitimas PHP taikomosiose programose

7. Išbandyk įgyvendinimą

Dabar išbandykite savo valdiklį tiesiai naršyklėje. Galite perduoti konkrečią nuotraukos ID per URL, ir ji bus atkuriama suplanuota. Įsitikinkite, kad tikrinote klaidas ir siųsite atitinkamus HTTP antraštes, jei nuotrauka nerandama.

Efektyvus vaizdų dydžio keitimas PHP taikymuose

Jei nuotrauka yra neteisingai rodoma, patikrinkite kodą dėl galimų klaidų arba rašybos klaidų. Galbūt turėsite koreguoti nuotraukų parametrus.

Efektyvus vaizdų mastelio keitimas PHP programose

8. Įgyvendink kešavimo sprendimą

Ilgalaikėje perspektyvoje turėtumėte apsvarstyti kešavimo sprendimo įgyvendinimą. Tai suteiks galimybę saugoti vieną kartą sukurtas, išskirtas nuotraukas, kad būtų pagerintas greitis atkuriant ateityje. Tai taupo skaičiavimo išteklius ir laiką.

Apibendrinimas - Nuotraukų keitimas objektinio programavimo su PHP

Šiame vadove išmokote, kaip keisti nuotraukas savo PHP programoje. Pradedant nuo nuotraukų valdiklio kūrimo, parodžiau, kaip dinamiškai pritaikyti nuotraukas ir pateikti efektyvius skaičiavimus, kad būtų pasiektas vienodas aukštis. Papildomos optimizacijos ir kešavimo mechanizmai gali dar labiau pagerinti jūsų programos našumą.

Dažnai užduodami klausimai

Kokia yra nuotraukų keitimo paskirtis?Nuotraukų keitimas pagerina svetainių vartotojų patirtį ir įkėlimo greitį.

Kaip galiu užtikrinti, kad mano nuotrauka būtų tinkamai pakeista?Įsitikinkite, kad išlaikote proporcijas, apskaičiuodami plotį proporcingai aukščiui.

Kokie yra kešavimo sprendimų privalumai?Kešavimas saugo jau pakeistas nuotraukas, taip sumažindamas darbo krūvį ir įkėlimo laiką, kai vėl prieinama.

Ar būtina turėti kešavimo sprendimą?Nors tai nėra būtina, tačiau labai rekomenduojama, kad būtų taupomi sistemos ištekliai ir didinamas našumas.