php實(shí)現(xiàn)等比例不失真縮放上傳圖片的方法
本文實(shí)例分析了php實(shí)現(xiàn)等比例不失真縮放上傳圖片的方法。分享給大家供大家參考,具體如下:
有時(shí)上傳圖片時(shí)因?yàn)閳D片太大了,不僅占用空間,消耗流量,而且影響瀏(圖片的尺寸大小不一)。下面分享一種等比例不失真縮放圖片的方法,這樣,不管上傳的圖片尺有多大,都會(huì)自動(dòng)壓縮到我們?cè)O(shè)置尺寸值的范圍之內(nèi)。經(jīng)過測(cè)試,證明實(shí)用。
<?php
function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)
{
$pic_width = imagesx($im);
$pic_height = imagesy($im);
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);//PHP系統(tǒng)函數(shù)
imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系統(tǒng)函數(shù)
}
else
{
$newim = imagecreate($newwidth,$newheight);
imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
}
$name = $name.$filetype;
imagejpeg($newim,$name);
imagedestroy($newim);
}
else
{
$name = $name.$filetype;
imagejpeg($im,$name);
}
}
//使用方法:
$im=imagecreatefromjpeg("./20140416103023202.jpg");//參數(shù)是圖片的存方路徑
$maxwidth="600";//設(shè)置圖片的最大寬度
$maxheight="400";//設(shè)置圖片的最大高度
$name="123";//圖片的名稱,隨便取吧
$filetype=".jpg";//圖片類型
resizeImage($im,$maxwidth,$maxheight,$name,$filetype);//調(diào)用上面的函數(shù)
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《php文件操作總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP圖片處理之使用imagecopyresampled函數(shù)實(shí)現(xiàn)圖片縮放例子
- php使用imagick模塊實(shí)現(xiàn)圖片縮放、裁剪、壓縮示例
- PHP中圖片等比縮放的實(shí)例
- php實(shí)現(xiàn)按指定大小等比縮放生成上傳圖片縮略圖的方法
- php圖片的裁剪與縮放生成符合需求的縮略圖
- PHP圖片等比例縮放生成縮略圖函數(shù)分享
- PHP自定義圖片縮放函數(shù)實(shí)現(xiàn)等比例不失真縮放的方法
- php縮放圖片(根據(jù)寬高的等比例縮放)實(shí)例介紹
- php實(shí)現(xiàn)圖片縮放功能類
- 常用的php圖片處理類(水印、等比縮放、固定高寬)分享
- PHP圖片裁剪與縮放示例(無損裁剪圖片)
- PHP實(shí)現(xiàn)將上傳圖片自動(dòng)縮放到指定分辨率,并保持清晰度封裝類示例
相關(guān)文章
PHP查找數(shù)組中只出現(xiàn)一次的數(shù)字實(shí)現(xiàn)方法【查找特定元素】
這篇文章主要介紹了PHP查找數(shù)組中只出現(xiàn)一次的數(shù)字實(shí)現(xiàn)方法,涉及php使用array_count_values針對(duì)數(shù)組元素進(jìn)行統(tǒng)計(jì)的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
php+xml編程之SimpleXML的應(yīng)用實(shí)例
這篇文章主要介紹了php+xml編程之SimpleXML的應(yīng)用,實(shí)例分析了SimpleXML函數(shù)操作XML文件的方法,需要的朋友可以參考下2015-01-01
判斷Keep-Alive模式的HTTP請(qǐng)求的結(jié)束的實(shí)現(xiàn)代碼
在使用短連接方式時(shí),每個(gè)HTTP請(qǐng)求對(duì)應(yīng)一個(gè)TCP連接,請(qǐng)求完成后連接立即斷開,服務(wù)器返回EOF。2011-08-08
PHP與JavaScript針對(duì)Cookie的讀寫、交互操作方法詳解
這篇文章主要介紹了PHP與JavaScript針對(duì)Cookie的讀寫、交互操作方法,結(jié)合實(shí)例形式分析了php與javascript設(shè)置cookie、php讀取php及js設(shè)置的cookie、js讀取php及js設(shè)置的cookie等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
PHP使用strstr()函數(shù)獲取指定字符串后所有字符的方法
這篇文章主要介紹了PHP使用strstr()函數(shù)獲取指定字符串后所有字符的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了PHP中strstr()函數(shù)用于字符串截取的使用技巧,需要的朋友可以參考下2016-01-01
PHP正則之正向預(yù)查與反向預(yù)查講解與實(shí)例
這篇文章主要介紹了PHP正則之正向預(yù)查與反向預(yù)查詳解與實(shí)例,需要的朋友可以參考下2020-04-04
PHP基于反射機(jī)制實(shí)現(xiàn)自動(dòng)依賴注入的方法詳解
這篇文章主要介紹了PHP基于反射機(jī)制實(shí)現(xiàn)自動(dòng)依賴注入的方法,結(jié)合實(shí)例形式分析了php使用反射實(shí)現(xiàn)自動(dòng)依賴注入的步驟、原理與相關(guān)操作技巧,需要的朋友可以參考下2017-12-12

