Heim  >  Artikel  >  Backend-Entwicklung  >  So optimieren Sie mit PHP die Bilddateigröße und -qualität Ihrer Website

So optimieren Sie mit PHP die Bilddateigröße und -qualität Ihrer Website

WBOY
WBOYOriginal
2023-06-25 11:31:401062Durchsuche

Im heutigen visuell orientierten Zeitalter ist die Bildqualität der Website sehr wichtig. Hochauflösende Bilddateien führen jedoch häufig dazu, dass die Website langsamer lädt, die Benutzererfahrung beeinträchtigt und das Website-Ranking beeinträchtigt. Daher müssen wir bei der Entwicklung der Website PHP verwenden, um die Größe und Qualität der Bilder zu optimieren und die Geschwindigkeit und Benutzererfahrung der Website zu verbessern. Hier sind mehrere Möglichkeiten, die Bildgröße und -qualität mit PHP zu optimieren.

1. Verwenden Sie die GD-Bibliothek von PHP. Die GD-Bibliothek von PHP ist eine Erweiterung für die Bildverarbeitung. Sie kann uns dabei helfen, eine Reihe von Vorgängen wie Skalieren, Zuschneiden, Drehen und Hinzufügen von Wasserzeichen zu Bildern durchzuführen. Durch die Verwendung dieser Bibliothek zur Optimierung von Bildern kann eine verlustfreie Komprimierung erreicht werden, dh die Bildgröße wird reduziert, ohne dass die Bildqualität beeinträchtigt wird. Das Folgende ist ein Beispiel für die Bildkomprimierung durch die GD-Bibliothek:

// 获取原始图片
$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);

In diesem Beispiel verwenden wir die GD-Bibliothek, um ein Originalbild zu komprimieren und ein neues Bild auszugeben. Unter anderem kann die Funktion imagecopyresampled() das Skalieren und Zuschneiden von Bildern erreichen und gleichzeitig die Qualität des Bildes beibehalten.

2. Verwenden Sie Tools von Drittanbietern für die Bildkomprimierung.

Zusätzlich zur GD-Bibliothek gibt es auch einige Tools von Drittanbietern, die uns bei der Optimierung von Bildern helfen können. Zum Komprimieren von Bildern können wir beispielsweise Online-Tools wie TinyPNG oder Kraken verwenden. Diese Tools können über die cURL-Erweiterung von PHP mit der API interagieren, um eine verlustfreie Komprimierung von Bildern zu erreichen. Das Folgende ist ein Beispiel für die Verwendung von TinyPNG zur Bildkomprimierung:

// 引入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);

In diesem Beispiel verwenden wir die API von TinyPNG, um Bilder zu komprimieren, den komprimierten Bildinhalt abzurufen und die komprimierten Bilder auszugeben.

3. Verwenden Sie reaktionsfähige Bilder

Reaktionsfähige Bilder beziehen sich auf Bilder, die die Bildgröße und -qualität automatisch an unterschiedliche Bildschirmgrößen, Pixeldichte und andere Bedingungen anpassen können. Durch die Verwendung responsiver Bilder können Sie die Ladezeit und Bandbreitennutzung Ihrer Webseiten reduzieren und gleichzeitig das Benutzererlebnis verbessern. Wir können PHP verwenden, um responsive Bilder zu generieren. Das Folgende ist ein Beispiel für die Verwendung von PHP zum Generieren reaktionsfähiger Bilder:

// 获取原始图片
$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);

In diesem Beispiel haben wir zunächst die Größe und Qualität des Originalbilds über die GD-Bibliothek angepasst und dann reaktionsfähige Bilder entsprechend unterschiedlichen Größen und Skalierungsverhältnissen generiert. Abschließend geben wir das responsive Bild über das

-Tag in HTML aus.

a1f02c36ba31691bcfe87b2722de723bZusammenfassend ist es sehr wichtig, PHP zu verwenden, um die Bilddateigröße und -qualität der Website zu optimieren, wodurch die Geschwindigkeit und das Benutzererlebnis der Website effektiv verbessert werden können. Wir können durch Methoden wie die GD-Bibliothek, Komprimierungstools von Drittanbietern und responsive Bilder optimieren. Gleichzeitig ist die Auswahl einer geeigneten Optimierungsstrategie basierend auf den tatsächlichen Anforderungen des Projekts und der Benutzererfahrung der Schlüssel.

Das obige ist der detaillierte Inhalt vonSo optimieren Sie mit PHP die Bilddateigröße und -qualität Ihrer Website. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn