Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda)

Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda)

WBOY
WBOYasal
2021-10-19 15:44:368839semak imbas

Dalam artikel sebelumnya, saya membawakan anda "Bagaimana untuk memuat naik fail dengan PHP? Anda akan faham selepas membacanya! 》, yang memperkenalkan anda secara terperinci cara memuat naik fail dalam PHP Dalam artikel ini, mari kita lihat pengetahuan berkaitan pemprosesan imej dalam PHP.

Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda)

Pemprosesan imej ialah sesuatu yang sering ditemui dalam kerja PHP Kami menghadapi banyak senario di mana kami perlu memproses imej, seperti kod pengesahan imej, tera air imej, dll. Sebenarnya, fokus pembelajaran pemprosesan imej sebenarnya adalah untuk mempelajari fungsi sistem GD dalam PHP Pemprosesan imej dalam PHP memerlukan sokongan perpustakaan GD, jadi mari kita lihat dahulu pengetahuan yang berkaitan tentang perpustakaan GD.

Pustaka GD

Pustaka GD boleh difahami sebagai perpustakaan fungsi untuk mencipta imej grafik sebenarnya Ia ditulis dalam bahasa C dan boleh digunakan dalam PHP Selain PHP, ia juga boleh digunakan dalam bahasa Perl dan pustaka GD menyediakan banyak antara muka untuk memproses imej PHP Perpustakaan boleh melukis pelbagai imej grafik, carta statistik, dan kod pengesahan imej pada halaman, dan juga boleh dilaksanakan menggunakan perpustakaan GD.

Contoh adalah seperti berikut:


Selepas input, dalam hasil output, jika dua pilihan yang ditunjukkan di bawah muncul, ia bermakna mesin semasa menyokong pemprosesan melalui GD Image :
<?php
phpinfo();
?>


Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda) Atau anda boleh menggunakan:

Selepas memasukkan, jalankan jika hasil output adalah seperti yang ditunjukkan dalam rajah di bawah , ini juga bermakna mesin semasa menyokongnya melalui GD.
<?php
    print_r(gd_info());
?>


Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda)Jika ia tidak dipasang, anda juga boleh menukar item "extension=php_gd2.dll" dalam fail konfigurasi php.ini di bawah sistem Windows Sebelum ini kaedah pemadaman ulasan selesai.

Dalam PHP, operasi pemprosesan imej melalui perpustakaan GD secara amnya dibahagikan kepada 4 langkah asas:

    Buat kanvas
  • Lukis imej
  • Imej output
  • Keluarkan sumber
  • Kami telah selesai melalui empat ini langkah Sekarang setelah anda mengetahui operasi asas pada imej, mari kita lihat cara mengendalikannya.

Buat kanvasSemua lukisan dan pemprosesan imej kami perlu dilakukan pada imej latar belakang, iaitu kanvas, yang boleh difahami sebagai Untuk imej, kami mempunyai kawasan sementara dalam ingatan sebagai kanvas untuk menyimpan maklumat imej Operasi imej masa hadapan akan dilakukan pada kawasan ini, iaitu kanvas.


dan

digunakan untuk mencipta kanvas format sintaksnya adalah seperti berikut: imagecreate() imagecreatetruecolor()

di mana $width mewakili lebar kanvas yang dibuat dan. juga boleh difahami sebagai imej Lebar, $height mewakili ketinggian kanvas yang dibuat, iaitu ketinggian imej
imagecreate(int $width, int $height)
imagecreatetruecolor(int $width, int $height)

Kedua-dua fungsi ini boleh digunakan untuk mencipta kanvas, tetapi perbezaannya ialah julat warna yang boleh mereka tampung adalah berbeza.


Contohnya adalah seperti berikut:


Memandangkan kanvas baru dibuat dan tiada apa-apa padanya, penyemak imbas tidak akan mengeluarkan kanvas, tetapi ia boleh diakses melalui imagesx() dan imagesy() untuk mendapatkan lebar dan tinggi imej:
<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
?>

Hasil keluaran:
<?php
    $img = @imagecreatetruecolor(120, 20) or die(&#39;画布创建失败!&#39;);
    echo &#39;画布的宽度为:&#39;.imagesx($img).&#39;像素&#39;;
    echo &#39;<br>画布的高度为:&#39;.imagesy($img).&#39;像素&#39;;
?>


Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda)Daripada ini kami telah selesai membuat kanvas .

Selain menggunakan dua fungsi di atas untuk mencipta kanvas, anda juga boleh mencipta imej melalui fail atau URL dengan cara berikut:

  • : melalui Fail GIF atau URL Cipta imej baharu

    imagecreatefromgif()

  • : Cipta imej baharu melalui fail JPEG atau UR L Cipta imej baharu

    imagecreatefromjpeg()

  • : Cipta imej baharu melalui fail atau URL WBMP

    imagecreatefrompng() 

  • Imej outputimagecreatefromwbmp() 

Dalam contoh di atas, kami telah berjaya membuat kanvas Imej dalam format yang berbeza dalam PHP juga memerlukan fungsi yang berbeza untuk output. penyemak imbas atau fail

: Keluarkan imej format JPEG ke penyemak imbas atau fail

  • : Keluarkan imej format PNG ke penyemak imbas atau fail

    imagegif() 

  • Format sintaksnya adalah seperti berikut:
  • imagegif(resource $image[, string $filename])
    imagejpeg(resource $image[, string $filename[, int $quality]])
    imagepng(resource $image[, string $filename])

    其中,$image为创建的一个图像资源;$filename表示为参数,用来设置文件需要保存的路径。

    示例如下:

    首先我在根目录中已经保存了一个名为php.png的图像文件

    <?php
        header(&#39;Content-type:image/jpeg&#39;);
        $image= imagecreatefrompng(&#39;php.png&#39;);
        imagepng($image);
    ?>

    输出结果:

    Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda)

    通过imagecreatefrompng()函数和imagepng()成功的输出了一个格式为png的图片。

    释放图像资源

    通过上述示例已经成功的输出了图片,在图片的资源使用完成后,通常需要释放图像处理时所占用的内存,那应该怎样操作呢?

    在PHP中我们通过imagedestroy() 函数来释放图像资源,语法格式如下:

    imagedestroy(resource $image)

    其中$image表示需要释放资源的图像

    示例如下:

    <?php
        header(&#39;Content-type:image/jpeg&#39;);
        $image= imagecreatefrompng(&#39;php.png&#39;);
        imagepng($image);
        imagedestroy($image);
    ?>

    因为释放图像资源的操作是没有输出内容的,所以就不列出输出结果了。

    推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Bagaimana untuk mengeluarkan imej dalam PHP? (Penjelasan terperinci tentang legenda). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn