Cara menggunakan PHP untuk mengoptimumkan saiz fail imej dan kualiti tapak web anda

WBOY
Lepaskan: 2023-06-25 11:34:01
asal
1093 orang telah melayarinya

Dalam era berorientasikan visual hari ini, kualiti imej tapak web adalah sangat penting. Walau bagaimanapun, fail imej resolusi tinggi sering menyebabkan tapak web dimuatkan dengan lebih perlahan, mengurangkan pengalaman pengguna dan menjejaskan kedudukan tapak web. Oleh itu, dalam pembangunan laman web, kita perlu menggunakan PHP untuk mengoptimumkan saiz dan kualiti imej serta meningkatkan kelajuan dan pengalaman pengguna laman web tersebut. Berikut ialah beberapa cara untuk mengoptimumkan saiz dan kualiti imej menggunakan PHP.

1. Gunakan perpustakaan GD PHP

Pustaka GD PHP ialah lanjutan untuk pemprosesan imej. Ia boleh membantu kami melakukan satu siri operasi seperti penskalaan, pemangkasan, pemutaran dan penambahan tera air pada imej. Menggunakan perpustakaan ini untuk mengoptimumkan imej boleh mencapai pemampatan tanpa kehilangan, iaitu, mengurangkan saiz imej tanpa menjejaskan kualiti imej. Berikut ialah contoh pemampatan imej melalui perpustakaan GD:

// 获取原始图片
$image = imagecreatefromjpeg('original_image.jpg');
// 获取原始图片的宽度和高度
$width = imagesx($image);
$height = imagesy($image);
// 计算缩小的比例
$scale = 0.5;
// 计算新的宽度和高度
$new_width = $width * $scale;
$new_height = $height * $scale;
// 创建新的图片
$new_image = imagecreatetruecolor($new_width, $new_height);
// 进行缩放
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 输出新的图片
imagejpeg($new_image, 'new_image.jpg', 80); // 80代表图片质量,可自行调整
// 释放内存
imagedestroy($image);
imagedestroy($new_image);
Salin selepas log masuk

Dalam contoh ini, kami menggunakan perpustakaan GD untuk memampatkan imej asal dan mengeluarkan imej baharu. Antaranya, fungsi imagecopyresampled() boleh mencapai penskalaan dan pemangkasan imej sambil mengekalkan kualiti imej.

2. Gunakan alat pihak ketiga untuk pemampatan imej

Selain pustaka GD, terdapat juga beberapa alatan pihak ketiga yang boleh membantu kami mengoptimumkan imej. Sebagai contoh, kita boleh menggunakan alat dalam talian seperti TinyPNG atau Kraken untuk memampatkan imej. Alat ini boleh berinteraksi dengan API melalui sambungan cURL PHP untuk mencapai pemampatan tanpa kehilangan imej. Berikut ialah contoh penggunaan TinyPNG untuk pemampatan imej:

// 引入curl库
require('vendor/autoload.php');
// 获取图片内容
$image_content = file_get_contents('original_image.jpg');
// 初始化curl
$curl = curl_init();
// 设置curl的参数
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.tinify.com/shrink',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => array(
    'Authorization: Basic ' . base64_encode('api_key:'),
    'Content-Type: application/json'
  ),
  CURLOPT_POSTFIELDS => json_encode(array(
    'source' => base64_encode($image_content),
  ))
));
// 执行curl并获取压缩后的图片内容
$response = curl_exec($curl);
// 获取压缩后的图片的大小
$new_size = curl_getinfo($curl, CURLINFO_SIZE_DOWNLOAD);
// 关闭curl
curl_close($curl);
// 解析返回的JSON数据
$data = json_decode($response, true);
// 获取压缩后的图片
$new_image_content = file_get_contents($data['output']['url']);
// 输出压缩后的图片
file_put_contents('new_image.jpg', $new_image_content);
Salin selepas log masuk

Dalam contoh ini, kami menggunakan API TinyPNG untuk memampatkan imej, mendapatkan kandungan imej yang dimampatkan dan mengeluarkan imej yang dimampatkan.

3. Gunakan imej responsif

Imej responsif merujuk kepada imej yang boleh melaraskan saiz dan kualiti imej secara automatik mengikut saiz skrin yang berbeza, ketumpatan piksel dan keadaan lain. Menggunakan imej responsif boleh mengurangkan masa muat dan penggunaan lebar jalur halaman web anda sambil meningkatkan pengalaman pengguna. Kita boleh menggunakan PHP untuk menghasilkan imej responsif. Berikut ialah contoh penggunaan PHP untuk menjana imej responsif:

// 获取原始图片
$image = imagecreatefromjpeg('original_image.jpg');
// 获取原始图片的宽度和高度
$width = imagesx($image);
$height = imagesy($image);
// 定义响应式图片尺寸
// 可自行根据项目需求设置
$sizes = array(
  '(max-width: 640px) 100vw',
  '50vw',
  '33.3vw'
);
// 定义缩放比例
$scales = array(
  1,
  0.5,
  0.3
);
// 输出响应式图片
echo '<img srcset="';
foreach ($sizes as $key => $size) {
  $new_width = $width * $scales[$key];
  $new_height = $height * $scales[$key];
  $new_image = imagecreatetruecolor($new_width, $new_height);
  imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  imagejpeg($new_image, 'new_image_'.$key.'.jpg', 80); // 80代表图片质量,可自行调整
  echo 'new_image_'.$key.'.jpg ' . $size . ($key == count($sizes)) ? '' : ',';
  imagedestroy($new_image);
}
echo '" sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33.3vw" />';
// 释放内存
imagedestroy($image);
Salin selepas log masuk

Dalam contoh ini, kami mula-mula melaraskan saiz dan kualiti imej asal melalui pustaka GD, dan kemudian menjana imej responsif mengikut saiz dan nisbah penskalaan yang berbeza. Akhir sekali, kami mengeluarkan imej responsif melalui teg <img> dalam HTML.

Ringkasnya, adalah sangat penting untuk menggunakan PHP untuk mengoptimumkan saiz fail imej dan kualiti tapak web, yang boleh meningkatkan kelajuan dan pengalaman pengguna tapak web dengan berkesan. Kami boleh mengoptimumkan melalui kaedah seperti pustaka GD, alat pemampatan pihak ketiga dan imej responsif. Pada masa yang sama, memilih strategi pengoptimuman yang sesuai berdasarkan keperluan sebenar projek dan pengalaman pengguna adalah kuncinya.

Atas ialah kandungan terperinci Cara menggunakan PHP untuk mengoptimumkan saiz fail imej dan kualiti tapak web anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!