PHP壓縮圖片函式
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">/** 圖片壓縮函式</span>
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> * @param $orgin_file 原始圖片檔案</span>
* @param $maxwidth 最大寬度 * @param $maxheight 最大高度 * @param $name 壓縮圖片名 * @param $filetype 圖片型別 */ function resizeImage($orgin_file,$maxwidth,$maxheight,$name,$filetype) { $im = ''; switch ($filetype){ case '.jpg': $im=imagecreatefromjpeg($orgin_file); break; case '.png': $im=imagecreatefrompng($orgin_file); break; case '.gif': $im=imagecreatefromgif($orgin_file); break; default: $im=imagecreatefromstring(file_get_contents($orgin_file)); } $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系統函式 imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP系統函式 } else { $newim = imagecreate($newwidth,$newheight); imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height); } $name = $name.$filetype; switch ($filetype){ case '.jpg': imagejpeg($newim,$name); break; case '.png': imagepng($newim,$name); break; case '.gif': imagegif($newim,$name); break; default: imagegd($newim,$name); } imagedestroy($newim); } else { $name = $name.$filetype; switch ($filetype){ case '.jpg': imagejpeg($im,$name); break; case '.png': imagepng($im,$name); break; case '.gif': imagegif($im,$name); break; default: imagegd($im,$name); } } }
呼叫方法
<span style="white-space:pre"> </span> $dot_pos = strripos($_FILES['image']['name'],'.'); $file_extend = substr($_FILES['image']['name'],$dot_pos); if(in_array($file_extend,$extend_limit) && in_array($_FILES['image']['type'],$type_limit) && ($_FILES["image"]["size"] < 10000000)){ $real_file_name = getRandChar(5).time().$file_extend; $real_path = dirname(__FILE__); $sys_path = $real_path.'/myuploads/'; $real_file_path = $sys_path.$real_file_name; if (move_uploaded_file($_FILES['image']['tmp_name'], $real_file_path)) { $result['status'] = 1; $maxwidth="600"; $maxheight="400"; $name=$real_file_path.'.thump'; $filetype=$file_extend; resizeImage($real_file_path,$maxwidth,$maxheight,$name,$filetype); $result['imgurl'] = 'myuploads/'.$real_file_name.'.thump'.$file_extend; } else { $result['status'] = 4; $result['desc'] = '圖片上傳失敗'; } }else{ $result['status'] = 3; $result['desc'] = '請選擇圖片檔案上傳'; }
圖片新增水印可以參考“imagecopymerge”函式,手冊很詳細。
相關推薦
PHP壓縮圖片函式
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">/** 圖片壓縮函式</span><span style="font-family: Arial
用 php 壓縮圖片
如何用php 壓縮圖片 廢話不說 直接上程式碼 header("Content-type: image/jpeg");//獲取圖片路徑$file = "123.jpg";$percent = 0.3; //圖片壓縮比list($width, $height) = getimage
php 壓縮圖片,保留圖片的畫素、透明度
/** * @param $picture 圖片資料流 比如file_get_contents(imageurl)返回的東東 * @param $destfile 儲存路徑 */ function miniImg($picture,$destf
PHP 壓縮圖片質量
$imageFileName = './test2.jpg';$uploadfile_resize = $imageFileName;$pic_width_max = 1000;$pic_height_max = 1000;$file_type = getimagesize($imageFileName)['
php壓縮圖片
在專案開發過程中少不了會用到圖片上傳功能,考慮到伺服器頻寬及磁碟空間,需要對圖片進行壓縮。 前端的壓縮可以節約頻寬,後端的壓縮可以節省磁碟空間。 function resizeImage($source,$percent=0.5){ if(empty($sourc
PHP 壓縮圖片 合併圖片和製作圓頭像利用gd庫
//按照寬高縮放圖片 public static function zoom($filename,$nw,$nh){ if(!file_exists(EXT.'qrcode/zoom/')){ mkdir(EXT.'qrcode/zoom/',0777,true);
PHP壓縮上傳圖片
是否 amp break class gef char mar fread type 最近手上的項目頁面要顯示很多圖片,雖然用了jQuery的lazyload,但是效果並沒理想,滑動到一個區域還要比較長的時間圖片才完全顯示出來。於是想著將上傳上去的900KB+壓縮備份一份縮
PHP實現圖片壓縮同時保持清晰度
縮小 con col inf turn 清晰 實驗 www lower PHP實現圖片壓縮同時保持清晰度 圖片太大是一個經常遇到的問題,為此很多人頭疼。今天告訴大家如何實現PHP程序簡單實現壓縮: 圖片原大小: 壓縮後: 這是我自己實驗的,可以處理多種圖片格式。 當然圖
Intervention\Image Laravel php等比例壓縮圖片 報錯:Call to undefined method Intervention\Image\Image::make()
安裝 composer require intervention/image 開啟config/app.php,註冊如下服務提供者到$providers陣列: Intervention\Image\ImageServiceProvider::class 然
Jquery+HTML5+PHP實現前臺壓縮圖片並上傳
先上圖吧: 待上傳 上傳後 功能描述: 使用HTML5在前臺進行圖片壓縮,然後上傳至伺服器上由PHP儲存。此外掛只適用於PC端,未做手機端頁面優化,如果需要應用在手機端請自行優化UI,即然是PC端為什麼還要前端壓縮呢?PC端很容易使用圖片處理軟體進行壓縮,那是適用於
PHP 按一定比例壓縮圖片,保持清晰度
圖片壓縮是我們日常開發中經常使用的操作,在如今需求很多的情況往往,上傳的一張圖片會被壓縮成不同比例的圖片,每次去操作也是一件非常繁瑣的事情,於是進行了封裝了一個壓縮圖片的操作類,希望大家遇到後,不用再為寫很多壓縮圖片程式碼煩惱了。 壓縮圖片的工具類: <?php /
PHP等比例縮放圖片大小壓縮圖片空間
/** * 等比例壓縮圖片,支援圖片格式jpg,jpeg,png * @param string $dst_dir 上傳的資料夾 * @param string $dst_name 上傳後的名稱,不包括副檔名 * @param int $maxWidth 如果需要等比
PHP 生成圖片縮圖函式
各位小盆友使用前記得開啟 GD 庫的支援哦,附上程式碼。 <?php /** * 生成縮圖函式(支援圖片格式:gif、jpeg、png和bmp) * @author ruxing.li * @param string $src 源圖片路徑 * @p
php實現圖片壓縮依舊保持清晰度
PHP實現圖片壓縮同時保持清晰度圖片太大是一個經常遇到的問題,為此很多人頭疼。今天告訴大家如何實現PHP程式簡單實現壓縮:圖片原大小:壓縮後:這是我自己實驗的,可以處理多種圖片格式。當然圖片原圖越大,越能體現出壓縮來。現在附上程式碼:<?php /** * 圖片壓縮類
前端壓縮圖片以及php後端上傳
後端壓縮已經越來越不能滿足使用者的需求,尤其在前端日益發展的今天,前端壓縮勢在必行。以前由於一直沒有找到合適的前端壓縮的方法,一次放棄,一次次繞行,最終沒有繞過這道坎。接下來我們說一下前端壓縮還有上傳 1.引入js,index.js已上傳我的資源。
php簡單圖片壓縮,基於laravel框架的原生處理
if($image->getClientMimeType() == "image/png"){//圖片格式$src = @imagecreatefrompng ($image->getRealPath()); //建立畫布,從快取檔案路徑載入圖片list($wi
PHP實現圖片壓縮
/** * 生成圖片 * @param string $im 源圖片路徑 * @param string $dest 目標圖片路徑 * @param int $maxwidth 生成圖片寬 * @param int $maxheight 生成圖片高 */ func
php 壓縮各格式圖片,處理png格式圖片背景黑色問題
//壓縮圖片 //$srcFile 檔名 //$percent壓縮比 //$quality圖片質量 function pictumb($srcFile,$percent,$quality){ $dstFile = $srcFile;//保留名
base64上傳頭像;php ajax前端壓縮圖片上傳;thinkphp5非同步上傳頭像
實現效果:點選頭像,直接選擇圖片,選完圖片,直接執行非同步上傳並替換圖片 相關知識點:php+ajax 亮點:如果選擇圖片較大,會在前端進行壓縮上傳,有利於提高上傳速度和減輕伺服器壓力 html程式碼比較簡單,實際上就是用絕對定位將上傳框定位到圖片上層,並將背景透明
c# 無損高質量壓縮圖片代碼
++ osi name source 新路 public rip erp lan 最近,項目上涉及到了圖像壓縮,發現原有的圖像壓縮功能,雖然保證了圖像的大小300K以內,但是壓縮後的圖像看的不在清晰,並且,限定了圖片的Height或者是Width。 在CSDN上看到了一個