Cara menggunakan php avif

AVIF adalah format gambar yang cukup baru dibandingkan dengan PNG atau JPEG. Sejak PHP 8. 1, ekstensi GD dapat dikompilasi dengan dukungan AVIF

Fungsi gd_info_ mengembalikan fitur dari ekstensi GD yang terpasang saat ini. Fungsi ini dapat digunakan untuk menentukan apakah format gambar AVIF tersedia dalam ekstensi GD

<?php

$avifSupport = gd_info()['AVIF Support'] ?? false;
var_dump($avifSupport);

Jika ekstensi GD dikompilasi dengan dukungan AVIF, kita dapat menggunakan fungsi imageavif yang dapat digunakan untuk menyimpan gambar AVIF. Misalnya, kode berikut membaca gambar JPEG dan mengubahnya menjadi gambar AVIF yang disimpan ke file

<?php

$image = imagecreatefromjpeg('test.jpg');
imageavif($image, 'test.avif');
_

Kami juga dapat menggunakan fungsi imagecreatefromavif_ yang memungkinkan pembuatan gambar baru dari file atau URL AVIF. Misalnya, kode berikut memungkinkan membaca gambar AVIF dan mengonversi ke gambar PNG dan menyimpan ke file

pengamatan acak, keingintahuan, atau pekerjaan ornitologi sistematis - rekam pengamatan mereka di lapangan menggunakan ponsel atau tablet. Tanggal, waktu dan lokasi akan terisi secara otomatis dan Anda dapat berkonsentrasi penuh pada pengamatan

Setiap pengamatan masuk akal, masing-masing membantu memahami lingkungan kita

fitur

• Menulis observasi acak, register lengkap, jam program (untuk burung pemetaan sarang)

• Melihat sarang bangau (hanya online) dan menulis tentang mengamati sarang bangau (dan offline)

• Kemampuan menuliskan jumlah, umur, jenis kelamin, aktivitas

• Tambahkan foto atau ambil foto langsung ke ponsel (ideal untuk digiscoping. )

• tanggal penyelesaian otomatis, waktu dan lokasi (ketika GPS diaktifkan)

• Sebuah peta dengan grid, perhitungan otomatis pemetaan persegi lokasi saat ini atau ditunjukkan

• Kemampuan untuk menyembunyikan acara (kerahasiaan ditetapkan selama 5 tahun, dan selanjutnya dapat mengubah Internet)

• Fungsi offline penuh - masukkan pengamatan, bahkan jika Anda berada di tempat tanpa sinyal selular

• Kemampuan untuk mendownload peta secara offline

• Alat praktis untuk memetakan atlas. hitungan mundur desetiminutovek, dengan peta kisi

CATATAN. Untuk menggunakan Avif Handphone Anda perlu membuat akun pribadi di database Faunistic CSO. Anda dapat membuat akun gratis di situs http. //avif. burung-burung. cz

AVIF (AV1 Image File) adalah format gambar yang relatif baru yang mendukung berbagai fitur seperti transparansi dan HDR. Ini adalah format gambar bebas royalti berdasarkan format video AV1, dan memberikan kompresi lebih tinggi dengan ukuran file lebih rendah

Format gambar AVIF distandarisasi baru-baru ini, dan browser seperti Chrome 85+ dan Firefox 86+ sudah mendukung gambar AVIF secara default

Ekstensi GD di PHP 8. 1 dan yang lebih baru mendukung format gambar AVIF, sehingga memungkinkan untuk mengonversi gambar dari dan ke AVIF. Perhatikan bahwa ekstensi GD harus dengan dukungan AVIF. Itu tergantung pada paket

dnf install libavif-devel
_4, yang mungkin tidak tersedia di repositori default versi sistem operasi yang lebih lama

Ekstensi GD bergantung pada paket

dnf install libavif-devel
_4 untuk menyediakan codec AVIF yang mendasarinya. Ekstensi GD membutuhkan
dnf install libavif-devel
4 versi
dnf install libavif-devel
7 atau lebih tinggi

Ubuntu/Debian

apt install libavif-dev
_

RHEL/Fedora

dnf install libavif-devel

Setelah dependensi diinstal, PHP dapat dikompilasi dengan dukungan AVIF dengan flag

dnf install libavif-devel
8 baru di skrip
dnf install libavif-devel
9

./buildconf --force
./configure --enable-gd --with-avif

Perhatikan bahwa perintah

dnf install libavif-devel
_9 di atas hanyalah sebuah contoh;

Menguji Ketersediaan AVIF

./buildconf --force
./configure --enable-gd --with-avif
1 dan
./buildconf --force
./configure --enable-gd --with-avif
2 Perintah CLI harus menampilkan gambar AVIF

php -i | grep AVIF
AVIF Support => enabled

Daftar fitur GD juga dapat diambil dari fungsi PHP

./buildconf --force
./configure --enable-gd --with-avif
3

gd_info();
[
     "GD Version" => "bundled (2.1.0 compatible)",
     "FreeType Support" => false,
     // ...
     "AVIF Support" => true,
]

Selain itu, ada dua fungsi baru, dan hanya tersedia jika ekstensi GD dikompilasi dengan dukungan AVIF

if (function_exists('imageavif')) {
    // AVIF support available.
}

Ekstensi GD di PHP 8. 1 menambahkan dua fungsi baru jika ekstensi dikompilasi dengan dukungan AVIF. Mereka mengikuti konvensi yang sama dari fungsi GD lainnya, seperti

./buildconf --force
./configure --enable-gd --with-avif
6/
./buildconf --force
./configure --enable-gd --with-avif
7,
./buildconf --force
./configure --enable-gd --with-avif
8/
./buildconf --force
./configure --enable-gd --with-avif
9, dll

function imagecreatefromavif(string $filename): GdImage|false {}

Fungsi

./buildconf --force
./configure --enable-gd --with-avif
_4 mengembalikan instance
php -i | grep AVIF
2 baru dari gambar AVIF yang diberikan. Contoh
php -i | grep AVIF
_2 ini kemudian dapat digunakan untuk memanipulasi/mengonversi gambar

./buildconf --force
./configure --enable-gd --with-avif
_4 fungsi mirip dengan fungsi yang ada seperti
./buildconf --force
./configure --enable-gd --with-avif
6 dan
./buildconf --force
./configure --enable-gd --with-avif
8 bahwa mereka semua mengembalikan
php -i | grep AVIF
2, atau
php -i | grep AVIF
8 pada kegagalan

/**
 * @param resource|string|null $file
 */
function imageavif(GdImage $image, $file = null, int $quality = -1, int $speed = -1): bool {}

./buildconf --force
./configure --enable-gd --with-avif
_5 fungsi menampilkan file berformat AVIF

Jika parameter

AVIF Support => enabled
1 adalah
AVIF Support => enabled
2, fungsi
./buildconf --force
./configure --enable-gd --with-avif
5 mencetak data biner. Jika nama file diberikan (
AVIF Support => enabled
_4), gambar AVIF akan ditulis ke nama file tersebut, atau jika file
AVIF Support => enabled
5 diberikan, gambar akan ditulis dan ditutup ke
AVIF Support => enabled
5 itu

Parameter opsional

AVIF Support => enabled
_7 dan
AVIF Support => enabled
8 digunakan untuk mengonfigurasi nilai kualitas dan kecepatan

  • AVIF Support => enabled
    7. Nilai default
    gd_info();
    _0 menggunakan kembali
    dnf install libavif-devel
    4 nilai default. Nilai yang diterima adalah
    gd_info();
    _2 (kualitas terburuk) hingga
    gd_info();
    3 (kualitas tertinggi). Bilangan bulat apa pun di luar rentang ini dijepit ke rentang
    gd_info();
    4
  • AVIF Support => enabled
    8. Nilai default
    gd_info();
    _0 menggunakan kembali nilai default
    dnf install libavif-devel
    4, yang setara dengan
    gd_info();
    8. Nilai yang diterima berada dalam kisaran
    gd_info();
    2 (paling lambat) hingga
    [
         "GD Version" => "bundled (2.1.0 compatible)",
         "FreeType Support" => false,
         // ...
         "AVIF Support" => true,
    ]
    0 (tercepat). Bilangan bulat di luar rentang
    [
         "GD Version" => "bundled (2.1.0 compatible)",
         "FreeType Support" => false,
         // ...
         "AVIF Support" => true,
    ]
    1 dijepit

Nilai default memberikan kecepatan dan kualitas yang seimbang. Coba gunakan nilai default

[
     "GD Version" => "bundled (2.1.0 compatible)",
     "FreeType Support" => false,
     // ...
     "AVIF Support" => true,
]
_2 dan
[
     "GD Version" => "bundled (2.1.0 compatible)",
     "FreeType Support" => false,
     // ...
     "AVIF Support" => true,
]
3 kecuali ada alasan khusus

Konversikan dan simpan gambar JPEG ke AVIF

dnf install libavif-devel
0

Konversikan dan simpan gambar AVIF ke PNG

dnf install libavif-devel
1

Pangkas dan simpan gambar dalam berbagai format

dnf install libavif-devel
2

Dampak Kompatibilitas Mundur

Yang baru dan fungsi hanya tersedia di PHP 8. 1+, dan jika ekstensi GD dibangun dengan dukungan AVIF. Ini membutuhkan

dnf install libavif-devel
_4 versi
dnf install libavif-devel
7 atau lebih tinggi

Ubuntu 21. 04 dan lebih tinggi, Debian 11 dan lebih tinggi, Alpine 3. 13 tahun ke atas, Fedora 34 adalah beberapa distribusi Linux yang menyediakan paket

[
     "GD Version" => "bundled (2.1.0 compatible)",
     "FreeType Support" => false,
     // ...
     "AVIF Support" => true,
]
8/
[
     "GD Version" => "bundled (2.1.0 compatible)",
     "FreeType Support" => false,
     // ...
     "AVIF Support" => true,
]
9 dalam repositori perangkat lunak default mereka

Alternatifnya, sumber dapat langsung digandakan dari

if (function_exists('imageavif')) {
    // AVIF support available.
}
0 repositori


Pada aplikasi yang tidak dapat menggunakan ekstensi GD atau memerlukan PHP 8. 1, Ekstensi Image Magick PECL, yang juga mendukung AVIF, mungkin merupakan opsi yang lebih layak dengan ketersediaan yang lebih luas

dnf install libavif-devel
_3

Kecuali aplikasi mendeklarasikan dirinya dan fungsinya, perubahan ini seharusnya tidak menyebabkan masalah kompatibilitas mundur