国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

php圖片批量壓縮并同時(shí)保持清晰度

這篇具有很好參考價(jià)值的文章主要介紹了php圖片批量壓縮并同時(shí)保持清晰度。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

php圖片壓縮可以通過(guò)GD庫(kù)來(lái)實(shí)現(xiàn)。以下是一個(gè)使用GD庫(kù)進(jìn)行圖片壓縮的示例代碼:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-671690.html

// 原始圖片路徑
$sourceImage = 'path/to/source/image.jpg'; 
// 壓縮后保存的路徑及文件名
$compressedImage = 'path/to/compressed/image.jpg'; 
// 壓縮后的圖片質(zhì)量(1-100,100為最高質(zhì)量)
$compressionQuality = 80; 
// 獲取原始圖片的信息
$imageInfo = getimagesize($sourceImage);
$originalWidth = $imageInfo[0];
$originalHeight = $imageInfo[1]; 
// 創(chuàng)建一個(gè)空白畫(huà)布
$compressed = imagecreatetruecolor($originalWidth, $originalHeight); 
// 根據(jù)原始圖片的格式創(chuàng)建一個(gè)新的圖片資源
if ($imageInfo['mime'] == 'image/jpeg' || $imageInfo['mime'] == 'image/pjpeg') {
    $source = imagecreatefromjpeg($sourceImage);
} elseif ($imageInfo['mime'] == 'image/png' || $imageInfo['mime'] == 'image/x-png') {
    $source = imagecreatefrompng($sourceImage);
}
 
// 將原始圖片復(fù)制到新的畫(huà)布上并進(jìn)行壓縮
imagecopyresampled($compressed, $source, 0, 0, 0, 0, $originalWidth, $originalHeight, $originalWidth, $originalHeight);
 
// 保存壓縮后的圖片
imagejpeg($compressed, $compressedImage, $compressionQuality); 
// 釋放內(nèi)存
imagedestroy($compressed);
imagedestroy($source); 
echo '圖片壓縮完成!';

PHP實(shí)現(xiàn)圖片壓縮同時(shí)保持清晰度

<?php

/**
 * 圖片壓縮類:通過(guò)縮放來(lái)壓縮。
 * 如果要保持源圖比例,把參數(shù)$percent保持為1即可。
 * 即使原比例壓縮,也可大幅度縮小。數(shù)碼相機(jī)4M圖片。也可以縮為700KB左右。如果縮小比例,則體積會(huì)更小。
 *
 * 結(jié)果:可保存、可直接顯示。
 */
class imgcompress{
    private $src;
    private $image;
    private $imageinfo;
    private $percent = 0.5;
    /**
     * 圖片壓縮
     * @param $src 源圖
     * @param float $percent  壓縮比例
     */
    public function __construct($src, $percent=1)
    {
        $this->src = $src;
        $this->percent = $percent;
    }
    /** 高清壓縮圖片
     * @param string $saveName  提供圖片名(可不帶擴(kuò)展名,用源圖擴(kuò)展名)用于保存?;虿惶峁┪募苯语@示
     */
    public function compressImg($saveName='')
    {
        $this->_openImage();
        if(!empty($saveName)) $this->_saveImage($saveName);  //保存
        else $this->_showImage();
    }
    /**
     * 內(nèi)部:打開(kāi)圖片
     */
    private function _openImage()
    {
        list($width, $height, $type, $attr) = getimagesize($this->src);
        $this->imageinfo = array(
            'width'=>$width,
            'height'=>$height,
            'type'=>image_type_to_extension($type,false),
            'attr'=>$attr
        );
        $fun = "imagecreatefrom".$this->imageinfo['type'];
        $this->image = $fun($this->src);
        $this->_thumpImage();
    }
    /**
     * 內(nèi)部:操作圖片
     */
    private function _thumpImage()
    {
        $new_width = $this->imageinfo['width'] * $this->percent;
        $new_height = $this->imageinfo['height'] * $this->percent;
        $image_thump = imagecreatetruecolor($new_width,$new_height);
        //將原圖復(fù)制帶圖片載體上面,并且按照一定比例壓縮,極大的保持了清晰度
        imagecopyresampled($image_thump,$this->image,0,0,0,0,$new_width,$new_height,$this->imageinfo['width'],$this->imageinfo['height']);
        imagedestroy($this->image);
        $this->image = $image_thump;
    }
    /**
     * 輸出圖片:保存圖片則用saveImage()
     */
    private function _showImage()
    {
        header('Content-Type: image/'.$this->imageinfo['type']);
        $funcs = "image".$this->imageinfo['type'];
        $funcs($this->image);
    }
    /**
     * 保存圖片到硬盤(pán):
     * @param  string $dstImgName  1、可指定字符串不帶后綴的名稱,使用源圖擴(kuò)展名 。2、直接指定目標(biāo)圖片名帶擴(kuò)展名。
     */
    private function _saveImage($dstImgName)
    {
        if(empty($dstImgName)) return false;
        $allowImgs = ['.jpg', '.jpeg', '.png', '.bmp', '.wbmp','.gif'];   //如果目標(biāo)圖片名有后綴就用目標(biāo)圖片擴(kuò)展名 后綴,如果沒(méi)有,則用源圖的擴(kuò)展名
        $dstExt =  strrchr($dstImgName ,".");
        $sourseExt = strrchr($this->src ,".");
        if(!empty($dstExt)) $dstExt =strtolower($dstExt);
        if(!empty($sourseExt)) $sourseExt =strtolower($sourseExt);
        //有指定目標(biāo)名擴(kuò)展名
        if(!empty($dstExt) && in_array($dstExt,$allowImgs)){
            $dstName = $dstImgName;
        }elseif(!empty($sourseExt) && in_array($sourseExt,$allowImgs)){
            $dstName = $dstImgName.$sourseExt;
        }else{
            $dstName = $dstImgName.$this->imageinfo['type'];
        }
        $funcs = "image".$this->imageinfo['type'];
        $funcs($this->image,$dstName);
    }
    /**
     * 銷毀圖片
     */
    public function __destruct(){
        imagedestroy($this->image);
    }
}
$source =  '123.png';//原圖片名稱
$dst_img = 'text.png';//壓縮后圖片的名稱
$percent = 1;  #原圖壓縮,不縮放,但體積大大降低
$image = (new imgcompress($source,$percent))->compressImg($dst_img);

批量壓縮


/**
 * 掃描文件夾
 * @param $path_dir
 */
function scan_dir($path_dir){
    if (!is_dir($path_dir)) return false;
    $rs = scandir($path_dir);
    foreach ($rs as $k => $v){
        if ($v === '.' || $v === '..') continue;
        $path = $path_dir.rtrim($v,'/');
        if (is_file($path)){
            $image = (new imgcompress($path, 1))->compressImg($path);
            log_msg("{$path}---");
            continue;
        }
        if (is_dir($path."/")) scan_dir($path."/");
    }
}
function log_msg($msg){
    echo "$msg\r\n";
}
/*開(kāi)始掃描文件夾*/
$source_dir = "./testimages/";//目標(biāo)路徑
scan_dir($source_dir);

到了這里,關(guān)于php圖片批量壓縮并同時(shí)保持清晰度的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 解決Canvas畫(huà)圖清晰度問(wèn)題

    解決Canvas畫(huà)圖清晰度問(wèn)題

    最近在開(kāi)發(fā)Web端遠(yuǎn)程桌面的時(shí)候遇到的一個(gè)問(wèn)題,解決記錄一下,分享給各位有需要用到的朋友。 先吹下水:遠(yuǎn)程桌面的連接我們是通過(guò)Websocket連接后,后端不斷返回遠(yuǎn)程端的界面二進(jìn)制數(shù)據(jù)流,我接收到之后轉(zhuǎn)為圖像,畫(huà)到Canvas中,然后對(duì)canvas進(jìn)行一系列的事件監(jiān)聽(tīng),傳遞

    2024年01月21日
    瀏覽(27)
  • WebRTC清晰度和流暢度

    WebRTC清晰度和流暢度 flyfish WebRTC提供了4種模式DISABLED,MAINTAIN_FRAMERATE,MAINTAIN_RESOLUTION,BALANCED 接口是 根據(jù)源碼 接口這里不是一一對(duì)應(yīng)的kDetailed和kText是類似的 使用方法 上述代碼video_track創(chuàng)建好之后,調(diào)用 參考 https://w3c.github.io/webrtc-pc/#idl-def-rtcdegradationpreference https://crbug.co

    2024年02月10日
    瀏覽(22)
  • Halcon清晰度檢測(cè)Demo

    此實(shí)例通過(guò)使用Halcon實(shí)現(xiàn)5種清晰度算法函數(shù): 1. 方差算法函數(shù); 2. 拉普拉斯能量函數(shù); 3. 能量梯度函數(shù); 4. Brenner函數(shù); 5. Tenegrad函數(shù); 測(cè)試效果如下圖片;找到峰值對(duì)應(yīng)的那張圖,確實(shí)是最清晰的那張;使用直方圖顯示清晰度結(jié)果,如果有更好的方法,那就跟帖回復(fù)吧。

    2023年04月25日
    瀏覽(20)
  • Python之Matplotlib繪圖調(diào)節(jié)清晰度

    Python之Matplotlib繪圖調(diào)節(jié)清晰度

    引言 使用python中的matplotlib.pyplot繪圖的時(shí)候,如果將圖片顯示出來(lái),或者另存為圖片,常常會(huì)出現(xiàn)清晰度不夠的問(wèn)題,當(dāng)然這種問(wèn)題是對(duì)于png或者jpg這種格式的圖片而言的,如果是生成svg或者pdf則不存在這種問(wèn)題,但是png和jpg也是經(jīng)常需要使用的圖片格式,因此就需要想辦法

    2024年02月01日
    瀏覽(27)
  • 鏡頭光學(xué)指標(biāo)介紹----清晰度SFR/MTF

    鏡頭光學(xué)指標(biāo)介紹----清晰度SFR/MTF

    目錄 簡(jiǎn)介 ? ? ? ? 常用單位 lp/mm(line-pairs/mm) Cycle?/ pixel LW/PH(line widths/ picture height) 轉(zhuǎn)換關(guān)系 MTF MTF概念 MTF50,MTF50P SFR SFR的計(jì)算方法 參考資料: 在鏡頭選型或者對(duì)比中,一般都會(huì)參考一些鏡頭的光學(xué)指標(biāo),產(chǎn)品中也會(huì)根據(jù)產(chǎn)品需求,選取合適的鏡頭,一般有清晰度指標(biāo)

    2024年02月09日
    瀏覽(31)
  • Python 圖像處理教程:如何提高圖像細(xì)節(jié)清晰度

    Python 是一種廣泛應(yīng)用于圖像處理的編程語(yǔ)言,它提供了豐富的圖像處理庫(kù),例如 Pillow 和 OpenCV 等。在進(jìn)行圖像處理時(shí),有時(shí)候我們需要提高圖像的細(xì)節(jié)清晰度,以便更好地觀察和分析圖像。本教程將介紹一些 Python 圖像處理技巧,幫助您提高圖像細(xì)節(jié)的清晰度。 增強(qiáng)圖像對(duì)

    2024年02月11日
    瀏覽(19)
  • videojs 實(shí)現(xiàn)自定義組件(視頻畫(huà)質(zhì)/清晰度切換) React

    videojs 實(shí)現(xiàn)自定義組件(視頻畫(huà)質(zhì)/清晰度切換) React

    最近使用videojs作為視頻處理第三方庫(kù),用來(lái)對(duì)接m3u8視頻類型。這里總結(jié)一下自定義組件遇到的問(wèn)題及實(shí)現(xiàn),目前看了許多文章也不全,官方文檔寫(xiě)的也不是很詳細(xì),自己摸索了一段時(shí)間陸陸續(xù)續(xù)完成了,這是實(shí)現(xiàn)后的效果. 樣式啥的自己檢查后覆蓋就行了,沒(méi)啥說(shuō)的,重點(diǎn)看

    2024年02月11日
    瀏覽(69)
  • 億圖導(dǎo)出word和PDF中清晰度保留方法

    億圖導(dǎo)出word和PDF中清晰度保留方法

    在億圖軟件中畫(huà)一個(gè)元件大小搭配合理的圖。注意字體大小的安排,尤其是角標(biāo)的大小要合適,示范如下 選中所有元器件,右鍵使用組合功能將電路圖組合為一個(gè)整體 將億圖軟件中的圖保存為SVG格式。示范如下 在導(dǎo)出到office中選擇SVG文檔 在visio中打開(kāi)上一步保存的SVG文件。

    2024年02月08日
    瀏覽(34)
  • 為什么視頻畫(huà)質(zhì)會(huì)變差,如何提升視頻畫(huà)質(zhì)清晰度。

    為什么視頻畫(huà)質(zhì)會(huì)變差,如何提升視頻畫(huà)質(zhì)清晰度。

    在數(shù)字時(shí)代,視頻已經(jīng)成為我們生活中不可或缺的一部分。然而,隨著視頻的傳輸和處理過(guò)程中的多次壓縮,畫(huà)質(zhì)損失逐漸凸顯,影響了我們對(duì)影像的真實(shí)感受。為了讓視頻畫(huà)質(zhì)更加清晰、逼真,我們需要采取一些措施來(lái)保護(hù)和修復(fù)視頻畫(huà)質(zhì),還原影像的真實(shí)之美。 1、錄制

    2024年02月16日
    瀏覽(18)
  • js將Excel轉(zhuǎn)成PDF(紙張、分頁(yè)、鋪滿、提高清晰度)

    依賴: 示例html DOM: 核心js: - - -

    2024年02月11日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包