首頁 後端開發 PHP問題 php怎麼修改圖片二進位檔案大小

php怎麼修改圖片二進位檔案大小

Apr 03, 2023 am 11:14 AM

在網頁開發和應用中,我們經常需要對圖片進行修改,以達到不同的需求和目的。而圖片的二進位檔案大小(檔案體積)則是我們不可忽略的一個重要因素,因為一個體積過大的圖片會降低網站或應用程式的效能和載入速度,甚至可能導致使用者流失,因此對於圖片檔案的體積進行優化是非常必要的。 PHP 是一個強大的程式語言,也是網頁開發常用的語言之一,以下我將為大家介紹如何使用 PHP 對圖片進行二進位檔案大小修改。

一、為什麼需要對圖片進行二進位檔案大小修改?

在 Web 開發中,可以使用很多方式來將圖片展示給用戶,而其中最常用的兩種方式就是將圖片直接加載到頁面中或以附件形式提供給用戶下載。當使用圖片直接載入到頁面中時,網頁會根據頁面的內容來載入圖片,如果圖片太大,網頁載入速度就會變慢,降低使用者體驗度;最糟糕的情況是可能導致網頁的崩潰。而當以附件形式提供給使用者下載時,由於一個圖片的二進位檔案大小(檔案體積)過大,則下載速度會過慢,導致使用者體驗不佳。

因此,對於專案中的圖片,我們一定要控制它的二進位檔案大小(檔案體積)。常用方法是對圖片進行壓縮和優化。而對於 PHP 開發來說,可以利用 GD 函式庫對圖片進行二進位檔案大小的修改。

二、GD 函式庫簡介

GD 函式庫是一個開源程式庫,它以 C 語言編寫,用於動態建立圖片。該庫可以處理 PNG、JPEG、GIF 等格式的圖片,透過縮放、裁剪、旋轉、添加文字和浮水印等操作,來產生各種格式的圖片。 GD 函式庫提供了一系列的函數,這些函數可以透過 PHP 的 GD 擴充來支援。

三、PHP 修改圖片二進位檔案大小的方法

使用 PHP 修改圖片二進位檔案大小的方法主要透過壓縮和最佳化實作。以下是利用PHP 的GD 函式庫實現壓縮和最佳化的兩種方法:

1、透過比例調整圖片大小

這種方法可以保持圖片的長寬比例不變,只是對圖片進行按比例縮放。

程式碼範例:

<?php
$src_file = &#39;test.jpg&#39;;  // 图片的路径和名称
$dst_file = &#39;thumbnail.jpg&#39;; // 缩略图的路径和名称
$quality = 50; // 压缩后的图片质量,0~100,0 地表示压缩比最高
$max_width = 200;  // 图片最大的宽度

// 获取原始图片的宽和高
$size = getimagesize($src_file);
$src_width = $size[0];
$src_height = $size[1];

// 计算缩小比例
if($src_width > $max_width){
    $shrink = $max_width / $src_width;
} else{
    $shrink = 1;
}

// 计算缩略图的宽度和高度
$des_width = intval($src_width * $shrink);
$des_height = intval($src_height * $shrink);

// 创建图片资源
$src_image = imagecreatefromjpeg($src_file);
$des_image = imagecreatetruecolor($des_width, $des_height);

// 拷贝并缩放图片
imagecopyresampled($des_image, $src_image, 0, 0, 0, 0, $des_width, $des_height, $src_width, $src_height);

// 保存图片
imagejpeg($des_image, $dst_file, $quality);

// 释放图片资源
imagedestroy($src_image);
imagedestroy($des_image);
?>
登入後複製

這裡將 test.jpg 圖片按比例縮放,縮放後的寬度最大為 200 像素,儲存的圖片名稱為 thumbnail.jpg,壓縮品質為 50。

附註:使用此方法也可在縮放時選擇裁切圖片。當圖片放大或縮小時,應考慮使用儲存透明度的 PNG 格式。

2、直接調整圖片的品質

這種方法可以對圖片的品質進行比較測量,直接輸出為已修改的圖片。

程式碼範例:

<?php
$src_file = &#39;test.jpg&#39;;  // 原始图片
$dst_file = &#39;optimize.jpg&#39;; // 优化后的图片
$quality = 50; // 压缩后的图片质量,0~100,0 地表示压缩比最高

// 创建图片资源
$src_image = imagecreatefromjpeg($src_file);

// 优化图片
imagejpeg($src_image, $dst_file,$quality);

// 释放图片资源
imagedestroy($src_image);
?>
登入後複製

此程式碼裡,將 test.jpg 圖片的壓縮品質降低到 50,儲存的圖片名稱為 optimize.jpg。

附註:請注意,此方法無法改變圖片尺寸。

四、總結

在 PHP 的開發中,使用 GD 函式庫對圖片進行二進位檔案大小的修改是非常必要的。透過圖片的壓縮和優化,可以有效地減少圖片的體積,從而優化網頁載入速度,提升使用者體驗。本文透過介紹了 GD 庫的簡介以及在 PHP 中使用 GD 庫對圖片進行二進位檔案大小修改的兩種方法。希望對 PHP 工程師們進行 Web 開發有幫助。

以上是php怎麼修改圖片二進位檔案大小的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24