✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

PHP-s saate pildi suurust muuta, kasutades sekkumispiltide kogu

21

Kas otsite, kuidas muuta PHP-s piltide suurust? Veebirakenduses töötades peame looma originaalpildi erinevad pisipiltide versioonid. Pisipilt on teie algse pildi suurusega versioon. Selles artiklis uurime, kuidas pilte PHP-s üles laadida ja suurust muuta.

Miks peaksime piltide suurust muutma?

Veebisaidil on mitu stsenaariumi, kus peame kuvama suure pildi lühikese versiooni. Populaarne näide on pildigalerii. Galeriis näitasime varem väikeste piltide loendit. Kui kasutaja klõpsab väikesel pildil, avaneb see hüpikaknas suur pilt. Teine näide on seotud artiklite kuvamine, kus näitame väikseid pilte koos postituse pealkirja ja kirjeldusega.

Nendes stsenaariumides peame genereerima väikese pildi (pisipildi), kasutades meie algset pilti. Väike pisipilt vähendab teie lehtede suurust. Kuna kasutate väikest pisipilti, nõuab brauser pildi laadimiseks väikest ribalaiust. See lisab veebisaidile mõningaid eeliseid. Mõned neist on:

  • Parandab serveri jõudlust
  • Vähendage ribalaiust
  • Parandage lehe kiirust

Nagu öeldud, vaatame, kuidas pilti PHP-s muuta.

Alustamine

Sekkumispilt on avatud lähtekoodiga teek, mis toimib pildi suuruse muutmise tööriistana. Kapoti all kasutab Intervention Image piltide töötlemiseks ja manipuleerimiseks GD Library ja Imagick.

Alustamiseks peate rakendusse installima sekkumispildi teegi. Teegi installimiseks soovitan kasutada Composerit.

Avage oma projekti juurkataloogis terminal ja käivitage allolev käsk.

composer require intervention/image

Pärast teegi installimist peate oma rakenduse lisama selle keskkonna. Selleks lisage PHP-faili alla kaks rida.

<?php
// include composer autoload
require 'vendor/autoload.php';
  
use InterventionImageImageManagerStatic as Image;

Pildi üleslaadimiseks ja suuruse muutmiseks vajame vormi, kus saab pilti sirvida ja vajutada nuppu Esita. Kasutage allolevat HTML-i, mis sisaldab failisisestust ja nuppu Esita.

<form method="post" enctype="multipart/form-data">
    <p><input type="file" name="image" /></p>
    <input type="submit" name="submit" value="Submit">
</form>

PHP-s saate pildi suurust muuta, kasutades sekkumispilti

Oleme installinud raamatukogu ja loonud vormi. Järgmisena peame pildi lennult üles laadima ja selle suurust muutma. Kavatsen luua kaks kataloogi uploadsja thumbnails. Kui uploadskausta, me salvestada originaal pilt. Kujutise pisipildiversioon salvestatakse thumbnailskataloogi.

Kasutage allolevat koodi, mis salvestab pildi algse ja pisipildi versiooni kataloogidesse uploadsja thumbnailskataloogidesse.

<?php
require 'vendor/autoload.php';
  
use InterventionImageImageManagerStatic as Image;
 
$allowed_mime_type = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');
 
if (isset($_POST['submit'])) {
 
    if (in_array($_FILES['image']['type'], $allowed_mime_type)) {
 
        if (!file_exists('uploads')) {
            mkdir('uploads', 0755);
        }
 
        $filename = time().'_'.$_FILES['image']['name'];
        $filepath = 'uploads/'. $filename;
        move_uploaded_file($_FILES['image']['tmp_name'], $filepath);
 
        if (!file_exists('uploads/thumbnails')) {
            mkdir('uploads/thumbnails', 0755);
        }
 
        $thumbnailpath = 'uploads/thumbnails/'. $filename;
        $img = Image::make($filepath);
        $img->resize(300, null, function ($constraint) {
            $constraint->aspectRatio();
        });
        $img->save($thumbnailpath);
    }
}

Ülaltoodud koodis andsin laiuseks 300 ja muutsin pildi suurust, säilitades nende kuvasuhte. Laiuse väärtuse saate edastada vastavalt oma nõudele. Kujutise suuruse muutmisel on soovitatav hoida kuvasuhet. Kuvasuhet kasutades pilt ei venita. Kui otsite kõva saaki, siis asendage allpool olevad read

$img->resize(300, null, function ($constraint) {
    $constraint->aspectRatio();
});

Koos

$img->resize(300, 150)->save($thumbnailpath);

Järeldus

Selles õpetuses uurisime, kuidas muuta piltide suurust, säilitades nende kuvasuhte. Kirjutasime ka koodi, mis kärbib pilti kõvasti. Sekkumise pildikogu pakub resizemeetodile veel mõned võimalused. Võite selle kohta rohkem lugeda nende dokumentatsioonist.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem