本文目錄一覽:
- 1、php等比縮放圖片,就是只按寬度縮小圖片,當圖片寬度大於750時就縮小到750 高度不用管 跟着寬度縮就行了
- 2、GD庫是什麼,功能是什麼
- 3、php 怎麼壓縮圖片的大小
- 4、php中使用GD庫壓縮圖片只壓縮寬度 高度不變應該如何處理
- 5、請問php中使用GD庫函數進行圖像處理的缺點是什麼?
- 6、php_gd2.dll是什麼,它有什麼用啊
php等比縮放圖片,就是只按寬度縮小圖片,當圖片寬度大於750時就縮小到750 高度不用管 跟着寬度縮就行了
首先說一下思路,首先你要判斷圖片的寬度,這需要用到一個函數,個人比較喜歡用getimagesize()
其次是等比例綻放,需要用到imagecopyresized(當然還有其他函數)
注意:我這裡用到的是gd庫
實現:
寫一個函數或者類都行,我這裡就以面向過程的方式來寫,你可以整理一下
$file = ‘pic.jpg’; //原圖片文件
$maxWidth = 750;
$info = getimagesize($file); //取得一個圖片信息的數組,索引 0 包含圖像寬度的像素值,索引 1 包含圖像高度的像素值。索引 2 是圖像類型的標記
if($info[0] $maxWidth )
{
exit(‘圖片小於’.$maxWidth.’,不需要縮放’);
}
$im = imagecreatefromjpeg($file); //根據圖片的格式對應的不同的函數,在此不多贅述。
$rate = $maxWidth/$info[0]; //計算綻放比例
$maxHeight = floor($info[1]*$rate); //計算出縮放後的高度
$des_im = imagecreatetruecolor($maxWidth,$maxHeight); //創建一個縮放的畫布
imagecopyresized($des_im,$im,0,0,0,0,$maxWidth,$maxHeight,$info[0],$info[1]); //縮放
imagejpeg($des_im,’thumb.jpg’); //輸出到thumb.jpg即為一個縮放後的文件
GD庫是什麼,功能是什麼
GD庫,是php處理圖形的擴展庫,GD庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。
在網站上GD庫通常用來生成縮略圖,或者用來對圖片加水印,或者用來生成漢字驗證碼,或者對網站數據生成報表等。在PHP處理圖像,可使用GD庫,而GD庫開始時是支持GIF的,但由於GIF使用了有版權爭議的LZW算法,會引起法律問題,於是從 GD 庫 1.6 版起所有的 GIF 支持都移除了,但是又在 GD 庫 2.0.28 版起又加了回來。如果使用二者之間版本的 GD 庫時 GIF 相關函數不可用。
php 怎麼壓縮圖片的大小
php 壓縮圖片的大小:
?php
$im = imagecreatefromjpeg(‘D:phpplace.jpeg’);
resizeImage($im,,,’xinde’,’.jpg’);
function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)
{
$pic_width = imagesx($im);
$pic_height = imagesy($im);
echo “start—————–” ;
if(($maxwidth $pic_width $maxwidth) ($maxheight $pic_height $maxheight))
{
if($maxwidth $pic_width$maxwidth)
{
$widthratio = $maxwidth/$pic_width;
$resizewidth_tag = true;
}
if($maxheight $pic_height$maxheight)
{
$heightratio = $maxheight/$pic_height;
$resizeheight_tag = true;
}
if($resizewidth_tag $resizeheight_tag)
{
if($widthratio$heightratio)
$ratio = $widthratio;
else
$ratio = $heightratio;
}
if($resizewidth_tag !$resizeheight_tag)
$ratio = $widthratio;
if($resizeheight_tag !$resizewidth_tag)
$ratio = $heightratio;
$newwidth = $pic_width * $ratio;
$newheight = $pic_height * $ratio;
if(function_exists(“imagecopyresampled”))
{
$newim = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($newim,$im,,,,,$newwidth,$newheight,$pic_width,$pic_height);
}
else
{
$newim = imagecreate($newwidth,$newheight);
imagecopyresized($newim,$im,,,,,$newwidth,$newheight,$pic_width,$pic_height);
}
$name = $name.$filetype;
imagejpeg($newim,$name);
imagedestroy($newim);
}
else
{
$name = $name.$filetype;
imagejpeg($im,$name);
}
}
php中使用GD庫壓縮圖片只壓縮寬度 高度不變應該如何處理
如果高度不變的話:
function resize($src,$w)
{
…..
imagecopyresized($temp_img, $im, 0, 0, 0, 0, $w, $height, $width, $height);
…..
}
順便提一句,我把你的代碼調試了一下,感覺有幾個地方代碼有點迷惑:
1. $savepath=”{$dir}/{$name}”;//縮略圖保存路徑,新的文件名為*.thumb.jpg
從代碼上看貌似生成不了這樣的文件名。
2. getImageInfo($src)、 create($src) 都不是系統函數
請問php中使用GD庫函數進行圖像處理的缺點是什麼?
如樓上所言,但個人認為 既然是縮略圖,模糊一點沒什麼所謂啦;
另一點就是,用GD庫處理透明的GIF有點問題,好像會變黑色背景;
還有一個是處理GIF動畫好像會變成單幀GIF圖像
php_gd2.dll是什麼,它有什麼用啊
GD庫擴展文件,用戶處理圖片,如生成圖片,圖片裁剪壓縮,給圖片打水印等等操作
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/230345.html