具體代碼如下所示:
/**
*
desription
壓縮圖片
*
@param
sting
$imgsrc
圖片路徑
*
@param
string
$imgdst
壓縮後保存路徑
*/
public
function
compressedImage($imgsrc,
$imgdst)
{
list($width,
$height,
$type)
=
getimagesize($imgsrc);
$new_width
=
$width;//壓縮後的圖片寬
$new_height
=
$height;//壓縮後的圖片高
if($width
>=
600){
$per
=
600
/
$width;//計算比例
$new_width
=
$width
*
$per;
$new_height
=
$height
*
$per;
}
switch
($type)
{
case
1:
$giftype
=
check_gifcartoon($imgsrc);
if
($giftype)
{
header('Content-Type:image/gif');
$image_wp
=
imagecreatetruecolor($new_width,
$new_height);
$image
=
imagecreatefromgif($imgsrc);
imageresampled($image_wp,
$image,
0,
0,
0,
0,
$new_width,
$new_height,
$width,
$height);
//90代表的是質量、壓縮圖片容量大小
imagejpeg($image_wp,
$imgdst,
90);
imagedestroy($image_wp);
imagedestroy($image);
}
break;
case
2:
header('Content-Type:image/jpeg');
$image_wp
=
imagecreatetruecolor($new_width,
$new_height);
$image
=
imagecreatefromjpeg($imgsrc);
imageresampled($image_wp,
$image,
0,
0,
0,
0,
$new_width,
$new_height,
$width,
$height);
//90代表的是質量、壓縮圖片容量大小
imagejpeg($image_wp,
$imgdst,
90);
imagedestroy($image_wp);
imagedestroy($image);
break;
case
3:
header('Content-Type:image/png');
$image_wp
=
imagecreatetruecolor($new_width,
$new_height);
$image
=
imagecreatefrompng($imgsrc);
imageresampled($image_wp,
$image,
0,
0,
0,
0,
$new_width,
$new_height,
$width,
$height);
//90代表的是質量、壓縮圖片容量大小
imagejpeg($image_wp,
$imgdst,
90);
imagedestroy($image_wp);
imagedestroy($image);
break;
}
}
總結
以上所述是小編給大家介紹的PHP等比例壓縮圖片的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:php中10個不同等級壓縮優化圖片操作示例PHP
實現等比壓縮圖片尺寸和大小實例代碼php
gd等比例縮放壓縮圖片函數基於PHP實現等比壓縮圖片大小php上傳圖片並壓縮的實現方法PHP實現圖片上傳並壓縮PHP實現圖片壓縮的兩則實例php使用imagick模塊實現圖片縮放、裁剪、壓縮示例
㈡ 請問怎麼壓縮圖片啊
你可以下載這個軟體試試,我自己正在用著的,覺得還不錯,可以選擇按像素大小或畫面質量壓縮圖片,耳目且是可以批量處理的,應該可以達到你的要求。
軟體名稱:批量圖片處理小助手
V2.0
綠色版
軟體大小:495
KB
軟體語言:簡體中文
軟體類別:免費版/免安裝/綠色軟體
下載地址:
http://www.hysp168.com/down_detail.php?id=19&nowmenuid=90&cpath=0001:&catid=1
軟體介紹:
批量圖片處理小助手(SignPics)是一個能幫您迅速大批量處理圖片的工具軟體。
SignPics具有以下幾大功能:
一.批量修改圖片大小。
二.批量為圖片加水印或簽名。
三.批量為圖片加上拍攝日期及時間。
四.批量為圖片調節亮度對比度
五.批量為圖片添加各種特效。
想將大量彩色圖片都變為黑白的?想將很多圖片都模糊或銳化處理,增加一些藝術效果?小助手SignPics都可以輕松為您實現
參考資料:
www.hysp168.com
㈢ php寫的json介面如何將圖片壓縮
用imageresized()縮放,圖片就小了,或者採用base64壓縮~
㈣ php 怎麼壓縮圖片的大小
好辦的,你把網站下載到本地,然後 用這個批量壓縮圖片的軟體就可以了
㈤ 請問怎麼批量的壓縮圖片啊比如把2mb的壓縮成幾十幾百k.而且要能批量壓縮的
壓縮圖片大小的主要方法是:
1、轉換文件格式。BMP、TIFF、RAW等基本是不壓縮的,所以文件體積非常大(相同尺寸照片),而JPG就是典型的壓縮文件,和BMP等相比,相同尺寸照片、畫質相近條件下體積是BMP等的1/4-1/10。
2、使用壓縮軟體。主要針對不壓縮的文件格式較為有效。RAR即可進行壓縮。
3、改變相片尺寸。這個就不用多說了。
建議使用ACDSEE,工作界面很友好,使用也比較方便,支持批量調整。
2.4版:http://soft.xj163.cn/index.php?o=go2down;id=1360;url=0
5.0版:http://soft.xj163.cn/index.php?o=go2down;id=465;url=0
9.0版:http://soft.xj163.cn/index.php?o=go2down;id=11027;url=0
㈥ 如何利用php把上傳的圖片壓縮
<?php
//Thefile
$filename='test.jpg';
$percent=0.5;
//Contenttype
header('Content-Type:image/jpeg');
//Getnewdimensions
list($width,$height)=getimagesize($filename);
$new_width=$width*$percent;
$new_height=$height*$percent;
//Resample
$image_p=imagecreatetruecolor($new_width,$new_height);
$image=imagecreatefromjpeg($filename);
imageresampled($image_p,$image,0,0,0,0,$new_width,$new_height,$width,$height);
//Output
imagejpeg($image_p,null,100);
?>
http://php.net/manual/en/function.imageresampled.php
㈦ PHP能壓縮網路上的圖片嗎
PHP圖片上傳並壓縮的實現方法具體內容如下使用到三個文件
connect.php:連接資料庫
test_upload.php:執行SQL語句
upload_img.php:上傳圖片並壓縮
三個文件代碼如下:
連接資料庫:connect.php
<?php
$db_host = '';
$db_user = '';
$db_psw = '';
$db_name = '';
$db_port = '';
$sqlconn=new mysqli($db_host,$db_user,$db_psw,$db_name);$q="set names utf8;";
$result=$sqlconn->query($q);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());exit();
}
?>
執行SQL語句:test_upload.php
<?php
require ("connect.php");
require ("upload_img.php");
$real_img=$uploadfile;
$small_img=$uploadfile_resize;
$insert_sql = "insert into img (real_img,small_img) values (?,?)";$result = $sqlconn -> prepare($insert_sql);$result -> bind_param("ss", $real_img,$small_img);$result -> execute();
?>
上傳圖片並壓縮:upload_img.php
<?php
//設置文件保存目錄
$uploaddir = "upfiles/";
//設置允許上傳文件的類型
$type=array("jpg","gif","bmp","jpeg","png");//獲取文件後綴名函數
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);}
//生成隨機文件名函數
function random($length)
{
$hash = 'CR-';
$chars = '';$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
$a=strtolower(fileext($_FILES['filename']['name']));//判斷文件類型
if(!in_array(strtolower(fileext($_FILES['filename']['name'])),$type)){
$text=implode(",",$type);
$ret_code=3;//文件類型錯誤
$page_result=$text;
$retArray = array('ret_code' => $ret_code,'page_result'=>$page_result);$retJson = json_encode($retArray);
echo $retJson;
return;
}
//生成目標文件的文件名
else
{
$filename=explode(".",$_FILES['filename']['name']);do
{
$filename[0]=random(10); //設置隨機數長度$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
if (move_uploaded_file($_FILES['filename']['tmp_name'],$uploadfile)){
if(is_uploaded_file($_FILES['filename']['tmp_name'])){
$ret_code=1;//上傳失敗
}
else
{//上傳成功
$ret_code=0;
}
}
$retArray = array('ret_code' => $ret_code);$retJson = json_encode($retArray);
echo $retJson;
}
//壓縮圖片
$uploaddir_resize="upfiles_resize/";
$uploadfile_resize=$uploaddir_resize.$name;//$pic_width_max=120;
//$pic_height_max=90;
//以上與下面段注釋可以聯合使用,可以使圖片根據計算出來的比例壓縮$file_type=$_FILES["filename"]['type'];
function ResizeImage($uploadfile,$maxwidth,$maxheight,$name){
//取得當前圖片大小
$width = imagesx($uploadfile);
$height = imagesy($uploadfile);
$i=0.5;
//生成縮略圖的大小
if(($width > $maxwidth) || ($height > $maxheight)){
/*
$widthratio = $maxwidth/$width;
$heightratio = $maxheight/$height;
if($widthratio < $heightratio)
{
$ratio = $widthratio;
}
else
{
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
*/
$newwidth = $width * $i;
$newheight = $height * $i;
if(function_exists("imageresampled")){
$uploaddir_resize = imagecreatetruecolor($newwidth, $newheight);imageresampled($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);}
else
{
$uploaddir_resize = imagecreate($newwidth, $newheight);imageresized($uploaddir_resize, $uploadfile, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);}
ImageJpeg ($uploaddir_resize,$name);
ImageDestroy ($uploaddir_resize);
}
else
{
ImageJpeg ($uploadfile,$name);
}
}
if($_FILES["filename"]['size'])
{
if($file_type == "image/pjpeg"||$file_type == "image/jpg"|$file_type == "image/jpeg"){
//$im = imagecreatefromjpeg($_FILES[$upload_input_name]['tmp_name']);$im = imagecreatefromjpeg($uploadfile);
}
elseif($file_type == "image/x-png")
{
//$im = imagecreatefrompng($_FILES[$upload_input_name]['tmp_name']);$im = imagecreatefromjpeg($uploadfile);
}
elseif($file_type == "image/gif")
{
//$im = imagecreatefromgif($_FILES[$upload_input_name]['tmp_name']);$im = imagecreatefromjpeg($uploadfile);
}
else//默認jpg
{
$im = imagecreatefromjpeg($uploadfile);
}
if($im)
{
ResizeImage($im,$pic_width_max,$pic_height_max,$uploadfile_resize);ImageDestroy ($im);
}
}
?>
請按照現實情況更改connect.php,test_upload.php中對應的信息
㈧ php壓縮圖片
比如(什麼?)上面有不同大小的圖片--------語文表達缺主語,含糊導致無法理解。
伺服器上面?客戶機上面?具體什麼軟體環境上面?
「有不同大小的圖片」,已經存在的圖片通常已經壓縮過的,像JPEG更是有損壓縮。再次壓縮必定再次會降低畫質。PHP可以再次處理圖片,但畫質和存儲大小不能兼得,畫質好就存儲大,要存儲小就畫質差,根據自己的畫質需求處理。
㈨ thinkphp如何做圖片壓縮呢
在上傳圖片的時候先看看圖片有多大,一般來說導航幻燈片的圖片單張大小盡量不超100k,產品圖不超過20k,這樣載入還慢的話就用ajax後載入方法,可以是滾動載入之類,但是對蜘蛛抓取頁面並不是很友好。
至於你說的用tp把圖片壓縮,那隻能是將圖片的尺寸改成你想要的尺寸,大小的話是web所用格式大小,等頁面載入完你又換原圖,這樣相當於又載入了一遍,還不如做ajax滾動載入。
㈩ php圖片上傳能用代碼壓縮圖片文件的大小嗎
圖片的格式是多變的,但是壓縮圖片的方式不變,壓縮軟體壓縮圖片一致都是那樣,我將操作步驟寫下來了,樓主可以看看
1、安裝相對應的輔助工具(迅捷圖片壓縮軟體)運行工具;
2、打開工具,看到頁面上的圖片壓縮選項,點擊這個藍色的按鈕進入將要實行操作的頁面。
3、在頁面上點擊選擇文件按鈕,或是選擇文件夾按鈕,都可以將存放圖片文件的文件夾打開,然後對圖片進行選擇。
4、選擇文件時我們按住多選鍵Ctrl,選擇我們需要壓縮的圖片添加到頁面中間的位置。
5、做到這一步了,下面我們可以對壓縮圖片的壓縮選項做一個選擇,可以轉換圖片的格式,轉化為png或者是jpg,將圖片壓縮可以選擇的壓縮選項如下。
6、將所有的參數設置完成之後我們點擊頁面上的「開始壓縮按鈕就可以進行壓縮了。
日常使用的壓縮圖片的辦法是將圖片壓縮為壓縮包,在使用是還要對其解壓才能使用,這種壓縮方法壓縮圖片不同點在於不會將圖片文件壓縮為壓縮包,能將圖片最大限度的縮小,圖片的狀態不會改變。