首页 > 编程语言 >python图片压缩大小及设置图片像素大小120乘160

python图片压缩大小及设置图片像素大小120乘160

时间:2024-08-11 11:27:32浏览次数:9  
标签:-% imgName python photo Image 120 time 图片

python图片压缩大小及设置图片像素大小120乘160

1.在 pycharm 中安装 pillow 库的步骤:打开设置并转到“项目”页面。选择“python 解释器”并单击“+”按钮。搜索“pillow”,选中包并单击“安装包”。
1. 打开PyCharm设置
Windows:File > Settings
2. 转到“项目”页面
在左侧导航栏中,单击“项目”图标。
3. 单击“Python解释器”
在项目页面的右侧,单击“Python解释器”标签。
4. 单击“+”按钮
在“已安装的包”列表上方,单击“+”按钮。
5. 搜索“Pillow”
在搜索栏中输入“Pillow”。
6. 选中Pillow包
在搜索结果中,选中“Pillow”包。
7. 单击“安装包”
单击“安装包”按钮。
8. 等待安装完成
PyCharm将下载并安装Pillow库。

 


如果通过pycharm安装Pillow失败,返回超时,需要使用客户端来安装。如下2
客户端打开方法:

 

2.客户端安装,python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
使用国内镜像,下载速度要快一些
>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow
>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

 

3.python 示例代码
PIL库quality降低图片质量方式压缩图片
qualityTest.py

import time
from PIL import Image, ImageFile

# 防止图片超过178956970 pixels 而报错
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None

# 读取img文件
# imgName='quality-2024-07-26-15-28-02-test.jpg'
imgName = "test.jpg"
# imgName = input("请输入图片名称:\n")
orgin_photo = Image.open(imgName)  # 读取img文件

timeNow = time.strftime("%Y-%m-%d-%H-%M-%S-", time.localtime(int(time.time())))  # 获取当前时间
print(timeNow + imgName)  # 生成图片的名字
orgin_photo.save("quality-" + timeNow + imgName, quality=30)  # quality 是设置压缩比,可以理解为图片质量,quality越大质量越好
print("图片保存成功")

qualityTest2.py 可以先压缩图片然后再裁剪图片的像素尺寸

import time
from PIL import Image, ImageFile

# 防止图片超过178956970 pixels 而报错
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None

# 读取img文件
# imgName='quality-2024-07-26-15-28-02-test.jpg'
imgName = "test.jpg"
# imgName = input("请输入图片名称:\n")
orgin_photo = Image.open(imgName)  # 读取img文件

# orgin_photo = Image.new('RGB', (120, 160), color='blue')    # 这个是新建一个蓝底的图片,而不是在原有的图片上面修改。
# 修改像素大小为120 × 160
img_resized = orgin_photo.resize((120, 160))

timeNow = time.strftime("%Y-%m-%d-%H-%M-%S-", time.localtime(int(time.time())))  # 获取当前时间
print(timeNow + imgName)  # 生成图片的名字
img_resized.save("quality-" + timeNow + imgName)
print("图片保存成功")

PIL库thumbnail压缩图片大小来压缩图片
thumbnailTest.py

import time

from PIL import Image, ImageFile

# 防止图片超过178956970 pixels 而报错,小图片没关系
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None

imgName='test.jpg'
# imgName = input("请输入图片名称:\n")
orgin_photo = Image.open(imgName)  # 读取img文件

w, h = orgin_photo.size  # 获取原尺寸图片大小

orgin_photo.thumbnail = ((w // 5, h // 5))  # 图片进行20%的压缩
# orgin_photo.thumbnail = ((w // 2, h // 2))  # 图片进行20%的压缩,测试过没有效果。

timeNow = time.strftime("%Y-%m-%d-%H-%M-%S-", time.localtime(int(time.time())))  # 获取当前时间
print(timeNow + imgName)  # 生成图片的名字
orgin_photo.save("thumbnail-" + timeNow + imgName)  # 重写图片并保存
print("图片保存成功")

 

标签:-%,imgName,python,photo,Image,120,time,图片
From: https://www.cnblogs.com/oktokeep/p/18353192

相关文章

  • Python之赋值语句(多重赋值和交换赋值)
    这是《Python入门经典以解决计算问题为导向的Python编程实践》73-74页关于赋值的内容。讲了Python中几种赋值方式。赋值语句1、最简单的赋值:a=b2、多重赋值:a,b,c=1,2,33、交换:a,b=b,a1、最简单的赋值:a=bb可以是数字、字符串,也可以是一个表达式。a必须是一个对象,不......
  • Python使用PyCharm创建一个简单的Qt Quick应用程序-hello_world_quick.py(读取qml文件
    """CreateaSimpleQuickApplication"""importsysfrompathlibimportPathfromPySide6.QtGuiimportQGuiApplicationfromPySide6.QtQmlimportQQmlApplicationEngine#打开文件,读取文件,并返回文件内容defread_file(file_path):"......
  • Python使用PyCharm创建一个简单的Qt Widgets应用程序-hello_world.py
    """CreateaSimpleQtWidgetsApplication"""importrandomimportsysfromPySide6importQtCore,QtWidgets#MainClassclassMyWidget(QtWidgets.QWidget):def__init__(self):super().__init__()self......
  • Python使用PyCharm创建一个简单的Qt Quick应用程序-hello_world_quick.py
    """CreateaSimpleQuickApplication"""importsysfromPySide6.QtGuiimportQGuiApplicationfromPySide6.QtQmlimportQQmlApplicationEngineQML="""importQtQuickimportQtQuick.ControlsimportQtQuick.Lay......
  • 使用Pinata在IPFS上存储NFT图片的实践
    文章目录前言一、什么是IPFS?二、为什么NFT需要IPFS?三、Pinata:IPFS上的存储解决方案四、实践:使用Pinata存储NFT图片1.注册2.获取API密钥与网关3.上传图片到IPFS总结前言随着区块链技术的快速发展,NFT(非同质化代币)在数字艺术、游戏和收藏品等领域变得越来越流行......
  • 封装一个批量加载图片的工具类
    遇到一个面试题,把其中一部分功能单独封装了一个批量加载图片的class。斗胆擅自加了一点功能,1、配置第一批同时发起load的图片数量(默认5张)。2、无论成败,每结束一张图片加载自动加载下一张。3、每张图片右侧实时展示目前加载状态(ready,pendding,success,failed)。代码还在完善......
  • Python数据结构:列表详解(创建、访问、修改、列表方法)①
    @[toc]Python中的列表是一个非常强大的数据结构,它允许我们存储、访问和操作一系列的数据。列表可以包含任何类型的对象,包括数字、字符串、甚至其他列表。本文将详细介绍Python列表的创建、访问、修改以及列表方法,并附上一个综合的例子,全面展示列表在实际编程中的应用。一......
  • python由tif影像绘制png图片并制作动图
    笔者最近需要下载一个区域的长时间序列影像,然后将其制作成动图展示其动态变化过程。这其中涉及到两个问题,一是将tif数据绘制成PNG或jpg等格式图片,二是由图片绘制动图GIF。一、由TIF绘制PNG 这里需要用到matplotlib和GDAL两个库来将tif格式图像绘制为PNG图片,如果没有相关包......
  • 多种优化算法优化LSTM——【包括:粒子群、蝙蝠、正余旋、多元宇宙、正余弦、JAYA、哈里
     ......
  • python 提取日志错误请求批量重新请求
    因为有服务器线上偶发异常,所以需要获取Nginx访问日志重新请求补全数据,这时会借助python获取错误请求的URL,然后重新请求。具体如下:importtimeimportrequestsfromurllib.parseimporturljoin#定义一个集合用于存储已处理的URL,避免重复处理processed_urls=set()with......