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

python壓縮圖片--指定壓縮大小且保真壓縮

這篇具有很好參考價值的文章主要介紹了python壓縮圖片--指定壓縮大小且保真壓縮。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

代碼核心思路

  • 循環(huán)降低圖片質(zhì)量quality
  • 直至圖片質(zhì)量大小符合目標(biāo)質(zhì)量后退出循環(huán)

pillow壓縮失真嚴(yán)重

'''
pip install pillow
'''
from io import BytesIO

from PIL import Image


def pic_compress(pic_path, out_path, target_size, quality=90, step=5):
    # 讀取圖片bytes
    with open(pic_path, 'rb') as f:
        pic_byte = f.read()

    current_size = len(pic_byte) / 1024  # 圖片當(dāng)前質(zhì)量大小
    print("圖片壓縮前的大小為(KB):", current_size)
    while current_size > target_size:  # 當(dāng)達(dá)到目標(biāo)壓縮大小后退出循環(huán)
        img = Image.open(BytesIO(pic_byte))
        buf = BytesIO()
        img.save(buf, format=img.format, quality=quality)
        pic_byte = buf.getvalue()
        if quality - step < 0:  # 以降低到最小質(zhì)量
            break
        quality -= step
        current_size = len(pic_byte) / 1024

    # 保存圖片
    with open(out_path, 'wb') as f:
        f.write(pic_byte)

    return len(pic_byte) / 1024


def main():
    pic_size = pic_compress('test.jpg', 'new_test.jpg', target_size=100)
    print("圖片壓縮后的大小為(KB):", pic_size)

if __name__ == '__main__':
    main()

pillow處理后和原圖片的對比
python壓縮圖片--指定壓縮大小且保真壓縮

使用pillow壓縮的圖片不單止大小質(zhì)量沒達(dá)標(biāo)而且處理后的圖片失真不忍直視。

使用opencv保真壓縮

'''
pip install numpy
pip install opencv-python
'''
from io import BytesIO

import cv2
import numpy as np


def pic_compress(pic_path, out_path, target_size=199, quality=90, step=5, pic_type='.jpg'):
    # 讀取圖片bytes
    with open(pic_path, 'rb') as f:
        pic_byte = f.read()

    img_np = np.frombuffer(pic_byte, np.uint8)
    img_cv = cv2.imdecode(img_np, cv2.IMREAD_ANYCOLOR)

    current_size = len(pic_byte) / 1024
    print("圖片壓縮前的大小為(KB):", current_size)
    while current_size > target_size:
        pic_byte = cv2.imencode(pic_type, img_cv, [int(cv2.IMWRITE_JPEG_QUALITY), quality])[1]
        if quality - step < 0:
            break
        quality -= step
        current_size = len(pic_byte) / 1024

    # 保存圖片
    with open(out_path, 'wb') as f:
        f.write(BytesIO(pic_byte).getvalue())

    return len(pic_byte) / 1024


def main():
    pic_size = pic_compress('test.jpg', 'new_test.jpg', target_size=100)
    print("圖片壓縮后的大小為(KB):", pic_size)


if __name__ == '__main__':
    main()

opencv處理后和原圖片的對比
python壓縮圖片--指定壓縮大小且保真壓縮文章來源地址http://www.zghlxwxcb.cn/news/detail-503114.html

文章靈感

  • 想用python壓縮圖片然后網(wǎng)上搜,搜索結(jié)果90%都是python使用pillow的壓縮。最主要是pillow壓縮后失真嚴(yán)重,在圖片壓縮方面純屬是個擺設(shè)的功能。

到了這里,關(guān)于python壓縮圖片--指定壓縮大小且保真壓縮的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • jpg圖片怎么壓縮大小,3個有效工具分享

    jpg圖片怎么壓縮大小,3個有效工具分享

    ? ? ???jpg圖片怎么壓縮大?。亢芏嘈』锇槎紩秒娔X來保存平時拍攝在的照片吧,拍攝的照片大多是jpg格式的,如果圖片的體積太大,那么可能會占用很多的電腦存儲空間,最后的結(jié)果是電腦變得非常慢,甚至卡死。平時我們在工作中也不太喜歡使用體積偏大的jpg圖片,為

    2024年02月02日
    瀏覽(23)
  • 如何將jpg圖片大小壓縮?這個方法建議收藏

    如何將jpg圖片大小壓縮?這個方法建議收藏

    如何將jpg圖片大小壓縮?平時在分享jpg圖片的時候,如果遇到圖片過大無法使用的情況,可以試試本文分享的這個方法,通過圖片在線處理工具壓縮jpg文件大小,還不會操作的小伙伴也不用擔(dān)心,下面小編會詳細(xì)介紹jpg壓縮的操作步驟,趕緊學(xué)習(xí)起來吧。 用瀏覽器打開壓縮圖

    2024年01月21日
    瀏覽(44)
  • 【vue3】前端上傳圖片的格式大小限制和壓縮

    【vue3】前端上傳圖片的格式大小限制和壓縮

    目錄 前言 對上傳圖片進(jìn)行格式大小限制 壓縮上傳圖片 上篇文章中研究了如何使用雙token機制,在此篇中就暴露了一些問題:當(dāng)accesstoken過期后,直到拿到最終想要得到的數(shù)據(jù),期間需要經(jīng)歷三次請求——第一次請求,拿到accesstoken過期的消息——第二次攜帶refreshtoken發(fā)起請求

    2024年02月06日
    瀏覽(36)
  • Qt QPixmap QImage 圖片等比例縮放到指定大小

    改變窗口組件的情況下改變窗口背景圖片的大小,QImage、QPixmap等繪圖設(shè)備類都提供scaled()函數(shù)。 ?scaled函數(shù): scaled(const QSize size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const ??第一個參數(shù)代表縮放后的尺寸 ??第二個

    2024年01月25日
    瀏覽(21)
  • 將圖片的大小(分辨率)調(diào)整為指定的寬度和高度

    這段代碼將圖像文件\\\"original.jpg\\\"的大小調(diào)整為寬度300像素,高度200像素,并將調(diào)整后的圖像保存為\\\"resized.jpg\\\"。您可以根據(jù)需要修改輸入和輸出的文件路徑和名稱。 1. 方法一 2. 方法二

    2024年02月08日
    瀏覽(28)
  • Matlab 保存指定像素大小的圖片, 為什么保存圖的實際大小與設(shè)置的不一致?

    Matlab 保存指定像素大小的圖片, 為什么保存圖的實際大小與設(shè)置的不一致?

    ?matlab使用getframe函數(shù)保存指定像素大小的圖片。 使用 set(gcf, \\\'position\\\', [124,124,800,800]);設(shè)置圖片位置和大小,可將圖片保存為256x256大小。 (代碼第3行) 僅把\\\'position\\\'參數(shù)從124改成125時,不能保存為期望的256x256大小,反而是320x320大小,這是為什么??(代碼第4行) 試試其他幾

    2024年02月12日
    瀏覽(26)
  • c# .net linux ImageSharp+FastDFS+Base64上傳圖片,壓縮圖片大小,圖像處理dcoker中使用也可以

    .net?以前是用System.Drawing來處理圖片,但是在dcoker 、linux上用不了 微軟官方推薦用 1、SkiaSharp 如果項目運行到docker里,需要NUGET安裝SkiaSharp.NativeAssets.Linux.NoDependencies 注意:如果你同時引用SkiaSharp.NativeAssets.Linux和SkiaSharp.NativeAssets.Linux.NoDependencies?可能會導(dǎo)致docker中運行報錯,

    2024年02月07日
    瀏覽(25)
  • python壓縮pdf文件大小

    python壓縮pdf文件大小

    pdf文件過大,經(jīng)常會是一個問題,但是市面上基本上都是收費的工具,wps需要開會員才能使用。因此找了一個python庫進(jìn)行試驗: 首先需要安裝 運行的代碼: 這個代碼使用非常簡單,主要是壓縮文件里面的圖片質(zhì)量,實際上圖片質(zhì)量差一些在閱讀器里面是看不出來的區(qū)別,效

    2024年02月13日
    瀏覽(29)
  • 【代碼管理】Git刪除倉庫中的大文件壓縮倉庫大小

    Git 倉庫中有時會不小心加入了一些大文件,例如模型文件,視頻文件 模型文件有可能以 .weights 結(jié)尾,或者 .onnx 結(jié)尾等等 視頻文件有可能以 .avi 結(jié)尾,或者 .mp4 結(jié)尾 大文件如果一直在倉庫中,倉庫體積會非常大,下面我們提供一個腳本,專門用于清理 倉庫中的文件使用。

    2024年04月26日
    瀏覽(21)
  • Python生成指定大小的文件

    轉(zhuǎn)載請注明出處?? 作者:測試蔡坨坨 原文鏈接:caituotuo.top/400bd75c.html 你好,我是測試蔡坨坨。 在日常測試工作中,我們經(jīng)常需要對上傳的文件大小進(jìn)行測試,例如:一個文件上傳功能,限制文件大小最大為10MB,此時我們可能需要測試10MB以及其邊界值9MB和11MB;再或者我們

    2024年02月08日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包