如何在PHP中使用GD庫處理圖片?
GD庫是一個功能強大的影像處理庫,在PHP中使用GD庫可以實現一些簡單的影像處理功能,例如裁剪、縮放、添加浮水印等。本文將介紹如何在PHP中使用GD庫處理圖片,並給出一些具體的程式碼範例。
首先,確保伺服器開啟了GD庫擴充功能。可以透過在php.ini檔案中找到並取消註解“extension=gd”,然後重新啟動伺服器。
接下來,我們來看一些常見的映像處理操作。
要建立縮圖,我們使用GD庫中的imagecopyresampled函數將原始影像按比例縮小到指定大小。以下是一個範例程式碼:
function createThumbnail($src, $dst, $width, $height) { $src_img = imagecreatefromjpeg($src); // 从原图像创建一个图像资源 $dst_img = imagecreatetruecolor($width, $height); // 创建一个指定大小的新图像资源 $src_width = imagesx($src_img); // 原图像的宽度 $src_height = imagesy($src_img); // 原图像的高度 $ratio = max($width / $src_width, $height / $src_height); // 计算缩放比例 $new_width = ceil($src_width * $ratio); // 计算缩略图的宽度 $new_height = ceil($src_height * $ratio); // 计算缩略图的高度 $x_offset = ($new_width - $width) / 2; // 计算水平偏移量 $y_offset = ($new_height - $height) / 2; // 计算垂直偏移量 imagecopyresampled($dst_img, $src_img, -$x_offset, -$y_offset, 0, 0, $new_width, $new_height, $src_width, $src_height); // 缩放图像 imagejpeg($dst_img, $dst); // 将缩略图保存到指定路径 imagedestroy($src_img); // 销毁图像资源 imagedestroy($dst_img); } // 示例使用 $source_image = 'original.jpg'; // 原图像路径 $thumbnail_image = 'thumbnail.jpg'; // 生成的缩略图路径 $thumbnail_width = 200; // 缩略图宽度 $thumbnail_height = 150; // 缩略图高度 createThumbnail($source_image, $thumbnail_image, $thumbnail_width, $thumbnail_height);
要新增浮水印,我們使用GD庫中的imagecopy函數將浮水印影像按指定的位置覆寫在原始影像上。以下是一個範例程式碼:
function addWatermark($src, $dst, $watermark) { $src_img = imagecreatefromjpeg($src); // 从原图像创建一个图像资源 $watermark_img = imagecreatefrompng($watermark); // 从水印图像创建一个图像资源 $src_width = imagesx($src_img); // 原图像的宽度 $src_height = imagesy($src_img); // 原图像的高度 $watermark_width = imagesx($watermark_img); // 水印图像的宽度 $watermark_height = imagesy($watermark_img); // 水印图像的高度 $x_offset = $src_width - $watermark_width - 10; // 水印图像的水平偏移量 $y_offset = $src_height - $watermark_height - 10; // 水印图像的垂直偏移量 imagecopy($src_img, $watermark_img, $x_offset, $y_offset, 0, 0, $watermark_width, $watermark_height); // 将水印图像覆盖在原图像上 imagejpeg($src_img, $dst); // 将带有水印的图像保存到指定路径 imagedestroy($src_img); // 销毁图像资源 imagedestroy($watermark_img); } // 示例使用 $source_image = 'original.jpg'; // 原图像路径 $watermark_image = 'watermark.png'; // 水印图像路径 $watermarked_image = 'watermarked.jpg'; // 带有水印的图像路径 addWatermark($source_image, $watermarked_image, $watermark_image);
透過上述範例程式碼,我們可以在PHP中使用GD庫處理圖像,實現縮圖的生成和水印的添加等功能。當然,GD庫也支援更多的影像處理操作,如影像旋轉、影像添加邊框等,可以根據實際需求進行擴展。
以上是如何在PHP中使用GD庫處理圖片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!