1. 程式人生 > >python圖片等比例壓縮

python圖片等比例壓縮

class ImageCompressUtil(object):
    # 等比例壓縮
    def resizeImg(self, **args):
        try:
            args_key = {'ori_img': '', 'dst_img': '', 'dst_w': '', 'dst_h': '', 'save_q': 100}
            arg = {}
            for key in args_key:
                if key in args:
                    arg[key] = args[key]
            im = image.open(arg['ori_img'])
            if im.format in ['gif', 'GIF', 'Gif']:
                return
            ori_w, ori_h = im.size
            widthRatio = heightRatio = None
            ratio = 1
            if (ori_w and ori_w > arg['dst_w']) or (ori_h and ori_h > arg['dst_h']):
                if arg['dst_w'] and ori_w > arg['dst_w']:
                    widthRatio = float(arg['dst_w']) / ori_w  # 正確獲取小數的方式
                if arg['dst_h'] and ori_h > arg['dst_h']:
                    heightRatio = float(arg['dst_h']) / ori_h
                if widthRatio and heightRatio:
                    if widthRatio < heightRatio:
                        ratio = widthRatio
                    else:
                        ratio = heightRatio
                if widthRatio and not heightRatio:
                    ratio = widthRatio
                if heightRatio and not widthRatio:
                    ratio = heightRatio
                newWidth = int(ori_w * ratio)
                newHeight = int(ori_h * ratio)
            else:
                newWidth = ori_w
                newHeight = ori_h
            if len(im.split()) == 4:
                # prevent IOError: cannot write mode RGBA as BMP
                r, g, b, a = im.split()
                im = image.merge("RGB", (r, g, b))
            im.resize((newWidth, newHeight), image.ANTIALIAS).save(arg['dst_img'], quality=arg['save_q'])
        except Exception as e:
            LogDao.warn(u'壓縮失敗' + str(e), belong_to='resizeImg')
            pass

具體使用:

# 目標圖片大小
dst_w = 600
dst_h = 600
# 儲存的圖片質量
save_q = 80
srcPath = os.getcwd() + '\\image\\src\\src.jpg'
savePath = os.getcwd() + '\\image\\src\\save.jpg'
ImageCompressUtil().resizeImg(
            ori_img=srcPath,
            dst_img=savePath,
            dst_w=dst_w,
            dst_h=dst_h,
            save_q=save_q
)


相關推薦

python圖片比例壓縮

class ImageCompressUtil(object): # 等比例壓縮 def resizeImg(self, **args): try: args_key = {'ori_img': '', 'dst_im

winfrom 圖片比例壓縮

isp ams mod net .net map sha The static 效果圖: 核心代碼: /// <summary> /// 等比例縮放圖片 /// </summary>

對上傳的圖片進行比例壓縮

/** * 修改系統Logo * @param file * @param systemBasicConfigurationDTO */ @PutMapping(value = "/updateSystemLogo") @ApiOperation(valu

Intervention\Image Laravel php比例壓縮圖片 報錯:Call to undefined method Intervention\Image\Image::make()

安裝 composer require intervention/image 開啟config/app.php,註冊如下服務提供者到$providers陣列: Intervention\Image\ImageServiceProvider::class 然

java指定寬度比例壓縮圖片

最近做專案需要用到圖片壓縮技術,在這裡整理下做個分享。 需要注意的是如果要壓縮的圖片太大,就需要修改JDK的預設記憶體了。廢話不多說,直接上程式碼。 import java.awt.Color; import java.awt.Graphics; import java.

java 比例壓縮圖片(背景不會成黑的)

class ImagesTool { public static void img_change(String url,String name) { Tosmallerpic(url,new File(url+name),"_small",name,30,40,(

java上傳並壓縮圖片比例壓縮或者原尺寸壓縮

先看效果: 原圖:1.33M 處理後:27.4kb 關鍵程式碼; package codeGenerate.util; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Imag

Android圖片壓縮:按比例壓縮並且質量壓縮

/** * 圖片按比例大小壓縮方法 * * @param srcPath (根據路徑獲取圖片並壓縮) * @return */ public static File getimage(String src

圖片進行比例壓縮

1.需要匯入的jar包2.定義類的私有欄位3.有參和無參構造/** * 無參構造(一般在存在有參構造的情況的需要另寫一個無參構造,防止系統將有參構造預設為需要自動執行的方法,防止報錯) */public ImgCompress() {super();}/** * 有參構造(呼

CSS網頁背景圖片比例占滿整個頁面的解決方案

100% 放大縮小 所有 功能 cnblogs 高度 圖片 版本 class 想做一個個人展示類的網站首頁,用整張圖片來當背景,瀏覽器窗口放大縮小時背景圖片不會變形,需要用到分層來實現其他功能,就用DIV來實現了 #bodycontainer { width:10

Js圖片比例縮放

tail wid display 圖片等比例縮放 nbsp function document fun splay <img src="chargein_cashgift_detail.png" class="img" > function sh

css圖片比例裁剪

-i mark src 設置 顯示 png cdn hid 如果 需求: 圖片的寬高是不固定的,但是外部盒子是有固定大小的。 圖片的寬度和盒子保持一致,並且是水平居中顯示,即兩邊是裁剪的 圖片的高度是由盒子寬度控制的,等比例縮放,多余的被裁減掉 原圖: 代碼: <!

UEditor 上傳圖片比例縮放

修改ueditor.all.js 16995行 updateTargetElement: function(){}裡的內容為 updateTargetElement: function () { var me = this; var newWidt

Java實現圖片比例縮圖

參考:Java實現圖片等比例縮圖 程式碼:SpringBoot版:https://gitee.com/Yenn-2017_admin/java_proportional_thumbnails 優點: 提升程式效能,提高程式效率 實現方式介紹 案例介紹 實現

PHP例項————圖片比例縮放功能

在網站開發的過程中,經常要對一些圖片進行一些處理,比如說縮放,裁剪,加水印等等。當然這些功能不僅僅可以用在開發網站的過程中,平時需要對圖片做一些處理的時候,把這個功能封裝到函式中去,要處理圖片的時候,

ios圖片比例自適應UIImageview

有時候圖片的寬高不等於UIImageview的寬高,如果之間imageView.image = image的話,會發現圖片會變形, 這個時候只需:imageView.contentMode = UIViewContentModeScaleAspectFill; 就會發現圖片

java開發比例壓縮照片,傳入byte陣列,返回byte陣列

public static byte [] scaleImage(byte [] photo) { try { ByteArrayInputStream in = new ByteArrayInputStream(photo); //將b作為

Java 實現圖片比例縮圖 (Thumbnailator + Jsp+SpringMVC)

Web應用為上傳圖片生成縮圖是常見的基本功能,通過縮圖生成提高了資訊瀏覽時的效能,在保證使用者使用體驗的同時減少了資料傳輸量。本次以例項的方式,講解如何使用使用Java實現圖片等比例縮圖生成功能。 效果檢視 程式碼編寫 Thumbn

JS控制圖片顯示的大小(圖片比例縮放)

在Web上顯示圖片,通常都會有圖片顯示比例問題,如果不給<img />限制width和height,那麼如果圖片大了就會將整個頁面擠亂,圖片小了又會使圖片失真。 我的需求如下: 預先定義好圖片顯示的標準寬度和高度。 如果圖片的大小超過了標準定義,那麼等比例壓縮圖片。 如果圖片的大小等於標準定義,

PHP 圖片比例縮放不失真

<?php /** * 圖片等比例縮放類 * @author zhx */ class ImgThumbnail { private $source; private $imageinfo; private $image; private $perc