Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyimpan gambar tanpa memuat naik dalam php

Bagaimana untuk menyimpan gambar tanpa memuat naik dalam php

PHPz
PHPzasal
2023-04-26 14:26:48621semak imbas

Dalam pembangunan web, pemprosesan imej adalah bahagian penting. Biasanya, pembangun perlu menggunakan fungsi muat naik fail untuk menyimpan imej ke pelayan. Tetapi dalam beberapa kes, kita perlu menyimpan imej terus ke pelayan tanpa memuat naiknya. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menyimpan imej terus ke pelayan.

Secara umumnya, menyimpan imej dengan memuat naik fail adalah cara biasa. Memuat naik fail boleh dicapai menggunakan pembolehubah global $_FILES yang disertakan dengan PHP. Walau bagaimanapun, jika kita tidak mahu menyimpan imej dengan memuat naik, kita mesti menggunakan perpustakaan sambungan pemprosesan imej PHP atau fungsi untuk menulis atau mencipta fail imej.

PHP menyediakan banyak perpustakaan sambungan dan fungsi untuk pemprosesan imej Perpustakaan sambungan yang biasa digunakan termasuk GD dan Imagick, serta fungsi seperti imagecreate() dan imagecopy(). Seterusnya kami akan memperkenalkan cara menggunakannya masing-masing.

1 Gunakan perpustakaan sambungan GD untuk menyimpan imej

GD ialah perpustakaan sambungan untuk PHP Ia menyediakan beberapa fungsi untuk menggunakan imej dalam PHP GD. Antaranya, fungsi imagejpeg() boleh digunakan untuk menyimpan imej sebagai fail format JPEG, fungsi imagepng() boleh digunakan untuk menyimpan imej sebagai fail format PNG, dan imagegif() boleh digunakan untuk menyimpan imej sebagai fail jenis GIF.

Berikut ialah contoh kod untuk menyimpan imej melalui pustaka sambungan GD:

<?php
//获取图片数据
$data= $img_data; //假设$img_data为图片数据
//创建图像
$img_gd=imagecreatefromstring($data);
//保存为JPEG格式文件
imagejpeg($img_gd,&#39;./img/test.jpg&#39;);
//保存为PNG格式文件
imagepng($img_gd,&#39;./img/test.png&#39;);
//保存为GIF格式文件
imagegif($img_gd,&#39;./img/test.gif&#39;);
//销毁图像
imagedestroy($img_gd);
?>

2 Gunakan pustaka sambungan Imagick untuk menyimpan imej

Imagick ialah sambungan lain perpustakaan PHP, yang menyediakan keupayaan pemprosesan imej yang lebih berkuasa berbanding dengan GD. Ia boleh membaca, menulis, mencipta, mengubah suai pelbagai format fail imej, dan menyokong beberapa fungsi pemprosesan imej lanjutan. Melalui Imagick, kita juga dapat merealisasikan fungsi menyimpan gambar terus ke pelayan.

Berikut ialah contoh kod untuk menyimpan imej melalui pustaka sambungan Imagick:

<?php
//获取图片数据
$data= $img_data; //假设$img_data为图片数据
//创建Imagick对象
$img_ima=new Imagick();
//将数据导入Imagick对象中
$img_ima->readImageBlob($data);
//设置保存格式为JPEG
$img_ima->setImageFormat('jpeg');
//保存图片
$img_ima->writeImage('./img/test.jpg');
//销毁对象
$img_ima->destroy();
?>

3 Gunakan fungsi imagecreatetruecolor() dan imagecopy() untuk menyimpan imej

Selain menggunakan Perpustakaan sambungan, PHP juga menyediakan beberapa fungsi terbina dalam untuk mencipta dan mengedit imej. Antaranya, fungsi imagecreatetruecolor() digunakan untuk mencipta imej warna benar dan mengembalikan pengecam imej, dan fungsi imagecopy() boleh menggabungkan dua imej.

Kod sampel adalah seperti berikut:

<?php
//获取图片数据
$data= $img_data; //假设$img_data为图片数据
//根据图片数据创建图像
$img_src=imagecreatefromstring($data);
//创建真彩色图像
$img_dest=imagecreatetruecolor(100, 100);
//将$img_src图像复制到$img_dest图像中
//imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h)
imagecopy($img_dest, $img_src, 0, 0, 0, 0, 100, 100);
//保存为JPEG格式文件
imagejpeg($img_dest,&#39;./img/test.jpg&#39;);
//销毁图像
imagedestroy($img_dest);
imagedestroy($img_src);
?>
Di atas adalah tiga kaedah untuk menyimpan imej secara terus menggunakan PHP Pembangun boleh memilih kaedah yang berbeza mengikut keperluan mereka sendiri. Ambil perhatian bahawa apabila menyimpan gambar dengan cara ini, anda perlu mendayakan kebenaran membaca dan menulis fail, jika tidak, simpan akan gagal.

Atas ialah kandungan terperinci Bagaimana untuk menyimpan gambar tanpa memuat naik dalam php. 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