PHP實現(xiàn)圖片指定寬高縮放的兩種方法
更新時間:2023年12月06日 09:36:39 作者:zzoood
這篇文章給大家介紹了PHP圖片指定寬高縮放的兩種實現(xiàn)方法,文中通過代碼示例和圖文結合的方式給大家介紹的非常詳細,感興趣的朋友可以參考下
方法一:使用 GD 庫或 ImageMagick 庫。
- 這里是一個使用 GD 庫的示例:
<?php // 指定圖片路徑 $image_path = 'path/to/your/image.jpg'; // 指定縮放后的寬度和高度 $new_width = 200; $new_height = 150; // 獲取圖片信息 list($width, $height, $type) = getimagesize($image_path); // 根據圖片類型創(chuàng)建圖片資源 switch ($type) { case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($image_path); break; case IMAGETYPE_PNG: $image = imagecreatefrompng($image_path); break; case IMAGETYPE_GIF: $image = imagecreatefromgif($image_path); break; default: die('Unsupported image type'); } // 創(chuàng)建一個新的空白圖像 $new_image = imagecreatetruecolor($new_width, $new_height); // 保持 PNG 和 GIF 圖像的透明度 if ($type == IMAGETYPE_PNG || $type == IMAGETYPE_GIF) { imagealphablending($new_image, false); imagesavealpha($new_image, true); $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127); imagefilledrectangle($new_image, 0, 0, $new_width, $new_height, $transparent); } // 將原圖像復制到新圖像并進行縮放 imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); // 輸出新圖像 header('Content-Type: image/' . image_type_to_extension($type, false)); // 將新圖像保存到目標路徑 $target_path = 'path/to/your/image_100_150.png'; imagepng($new_image, $target_path); // 釋放內存 imagedestroy($image); imagedestroy($new_image); ?>
- 原圖
- 縮放效果
方法二:使用ThinkPHP的圖像處理擴展
- 本示例版本:
php:5.0
think-image:1.0
- 安裝擴展:
composer require topthink/think-image
- 代碼示例
$image = \think\Image::open('./image.png'); // 按照原圖的比例生成一個最大為150*150的縮略圖并保存為thumb.png $image->thumb(150, 150)->save('./thumb.png');
- 縮放效果
結語:
方法一 使用GD庫尺寸更加精確,但是會造成變形
方法二 尺寸上會與設置有所不同,但不會變形
到此這篇關于PHP圖片指定寬高縮放的兩種實現(xiàn)方法的文章就介紹到這了,更多相關PHP圖片指定寬高縮放內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!