php圖片壓縮上傳
遠標老師教我們用fireworks優化下圖片,用最高品質jpg就可以.優化後再上傳就可以了
『貳』 php圖片上傳能用代碼壓縮圖片文件的大小嗎
圖片的格式是多變的,但是壓縮圖片的方式不變,壓縮軟體壓縮圖片一致都是那樣,我將操作步驟寫下來了,樓主可以看看
1、安裝相對應的輔助工具(迅捷圖片壓縮軟體)運行工具;
2、打開工具,看到頁面上的圖片壓縮選項,點擊這個藍色的按鈕進入將要實行操作的頁面。
3、在頁面上點擊選擇文件按鈕,或是選擇文件夾按鈕,都可以將存放圖片文件的文件夾打開,然後對圖片進行選擇。
4、選擇文件時我們按住多選鍵Ctrl,選擇我們需要壓縮的圖片添加到頁面中間的位置。
5、做到這一步了,下面我們可以對壓縮圖片的壓縮選項做一個選擇,可以轉換圖片的格式,轉化為png或者是jpg,將圖片壓縮可以選擇的壓縮選項如下。
6、將所有的參數設置完成之後我們點擊頁面上的「開始壓縮按鈕就可以進行壓縮了。
日常使用的壓縮圖片的辦法是將圖片壓縮為壓縮包,在使用是還要對其解壓才能使用,這種壓縮方法壓縮圖片不同點在於不會將圖片文件壓縮為壓縮包,能將圖片最大限度的縮小,圖片的狀態不會改變。
『叄』 PHP網站上傳圖片自動壓縮,怎麼編程啊,求指
這里會使用到三個文件:
三個文件代碼如下:
連接資料庫:connect.php
<?php
$db_host='';
$db_user='';
$db_psw='';
$db_name='';
$db_port='';
$sqlconn=newmysqli($db_host,$db_user,$db_psw,$db_name);
$q="setnamesutf8;";
$result=$sqlconn->query($q);
if(mysqli_connect_errno()){
printf("Connectfailed:%s ",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="insertintoimg(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");
//獲取文件後綴名函數
functionfileext($filename)
{
returnsubstr(strrchr($filename,'.'),1);
}
//生成隨機文件名函數
functionrandom($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'];
functionResizeImage($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圖片上傳後被壓縮了,變得不清晰了,怎麼解決
如果清晰的上傳後,不清晰,,那就是設置的壓縮質量問題,,,如果是不清晰上傳了,這肯定不會清晰了。。。
找到上傳的設置里可以找到圖片壓縮比例。。。。
『伍』 ThinkPHP 上傳圖片壓縮原圖片
來直接上代碼,基本上能懂!
上傳+壓縮
『陸』 如何利用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圖片上傳到伺服器指定路徑,並且圖片壓縮成70*95大小代碼!
<?
$path='img/';//路徑
$phtypes=array(
'img/gif',
'img/jpg',
'img/jpeg',
'img/bmp',
'img/pjpeg',
'img/x-png'
);
?>
<html><body>
<form method="post" enctype="multipart/form-data" name="form1">
<table>
<tr><td>上傳圖片</td></tr>
<tr><td><input type="file" name="photo" size="20" /></td></tr>
<tr><td><input type="submit" value="上傳"/></td></tr>
</table>
允許上傳的文件類型為:<?=implode(', ',$phtypes)?></form>
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
if (!is_uploaded_file($_FILES["photo"][tmp_name])){
echo "圖片不存在";
exit();
}
if(!is_dir('img')){//路徑若不存在則創建
mkdir('img');
}
$upfile=$_FILES["photo"];
$pinfo=pathinfo($upfile["name"]);
$name=$pinfo['basename'];//文件名
$tmp_name=$upfile["tmp_name"];
$file_type=$pinfo['extension'];//獲得文件類型
$showphpath=$path.$name;
if(in_array($upfile["type"],$phtypes)){
echo "文件類型不符!";
exit();
}
if(move_uploaded_file($tmp_name,$path.$name)){
echo "成功!";
}
echo "<img src=\"".$showphpath."\" hight=\"70\" width=\"95\" />";
}
?>
</body>
</html>
『捌』 php如何上傳一個壓縮文件
<formenctype="multipart/form-data"action="singleupload.php"method="post">
<inputtype="hidden"name="MAX_FILE_SIZE"value="2000000">
<inputtype=filename=upfilesize=20>
<inputtype=submitvalue="上傳文件">
</form>
if(move_uploaded_file($_FILES['upfile']['tmp_name'],$_FILES['upfile']['name'])){
echo"<h2><fontcolor=#ff0000>文件上傳成功!</font></h2><br><br>";
}else{
echo"<h2><fontcolor=#ff0000>文件上傳失敗!</font></h2><br><br>";
}
『玖』 php 怎麼壓縮圖片後 在發給前端
<?php
/*
----------------------------------------------------------------------
函數:調整圖片尺寸或生成縮略圖
返回:True/False
參數:
$Image需要調整的圖片(含路徑)
$Dw=450調整時最大寬度;縮略圖時的絕對寬度
$Dh=450調整時最大高度;縮略圖時的絕對高度
$Type=11,調整尺寸;2,生成縮略圖
$path='img/';//路徑
$phtypes=array(
'img/gif',
'img/jpg',
'img/jpeg',
'img/bmp',
'img/pjpeg',
'img/x-png'
);
FunctionImg($Image,$Dw=450,$Dh=450,$Type=1){
IF(!File_Exists($Image)){
ReturnFalse;
}
//如果需要生成縮略圖,則將原圖拷貝一下重新給$Image賦值
IF($Type!=1){
Copy($Image,Str_Replace(".","_x.",$Image));
$Image=Str_Replace(".","_x.",$Image);
}
//取得文件的類型,根據不同的類型建立不同的對象
$ImgInfo=GetImageSize($Image);
Switch($ImgInfo[2]){
Case1:
$Img=@ImageCreateFromGIF($Image);
Break;
Case2:
$Img=@ImageCreateFromJPEG($Image);
Break;
Case3:
$Img=@ImageCreateFromPNG($Image);
Break;
}
//如果對象沒有創建成功,則說明非圖片文件
IF(Empty($Img)){
//如果是生成縮略圖的時候出錯,則需要刪掉已經復制的文件
IF($Type!=1){Unlink($Image);}
ReturnFalse;
}
//如果是執行調整尺寸操作則
IF($Type==1){
$w=ImagesX($Img);
$h=ImagesY($Img);
$width=$w;
$height=$h;
IF($width>$Dw){
$Par=$Dw/$width;
$width=$Dw;
$height=$height*$Par;
IF($height>$Dh){
$Par=$Dh/$height;
$height=$Dh;
$width=$width*$Par;
}
}ElseIF($height>$Dh){
$Par=$Dh/$height;
$height=$Dh;
$width=$width*$Par;
IF($width>$Dw){
$Par=$Dw/$width;
$width=$Dw;
$height=$height*$Par;
}
}Else{
$width=$width;
$height=$height;
}
$nImg=ImageCreateTrueColor($width,$height);//新建一個真彩色畫布
ImageCopyReSampled($nImg,$Img,0,0,0,0,$width,$height,$w,$h);//重采樣拷貝部分圖像並調整大小
ImageJpeg($nImg,$Image);//以JPEG格式將圖像輸出到瀏覽器或文件
ReturnTrue;
//如果是執行生成縮略圖操作則
}Else{
$w=ImagesX($Img);
$h=ImagesY($Img);
$width=$w;
$height=$h;
$nImg=ImageCreateTrueColor($Dw,$Dh);
IF($h/$w>$Dh/$Dw){//高比較大
$width=$Dw;
$height=$h*$Dw/$w;
$IntNH=$height-$Dh;
ImageCopyReSampled($nImg,$Img,0,-$IntNH/1.8,0,0,$Dw,$height,$w,$h);
}Else{//寬比較大
$height=$Dh;
$width=$w*$Dh/$h;
$IntNW=$width-$Dw;
ImageCopyReSampled($nImg,$Img,-$IntNW/1.8,0,0,0,$width,$Dh,$w,$h);
}
ImageJpeg($nImg,$Image);
ReturnTrue;
}
}
?>
<html><body>
<formmethod="post"enctype="multipart/form-data"name="form1">
<table>
<tr><td>上傳圖片</td></tr>
<tr><td><inputtype="file"name="photo"size="20"/></td></tr>
<tr><td><inputtype="submit"value="上傳"/></td></tr>
</table>
允許上傳的文件類型為:<?=implode(',',$phtypes)?></form>
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
if(!is_uploaded_file($_FILES["photo"][tmp_name])){
echo"圖片不存在";
exit();
}
if(!is_dir('img')){//路徑若不存在則創建
mkdir('img');
}
$upfile=$_FILES["photo"];
$pinfo=pathinfo($upfile["name"]);
$name=$pinfo['basename'];//文件名
$tmp_name=$upfile["tmp_name"];
$file_type=$pinfo['extension'];//獲得文件類型
$showphpath=$path.$name;
if(in_array($upfile["type"],$phtypes)){
echo"文件類型不符!";
exit();
}
if(move_uploaded_file($tmp_name,$path.$name)){
echo"成功!";
Img($showphpath,100,800,2);
}
echo"<imgsrc="".$showphpath.""/>";
}
?>
</body>
</html>