相关疑难解决方法(0)

如何在Python Imaging Library中调整已调整大小的图像的质量?

我正在研究PIL并且需要知道在调整图像大小或缩略图像时是否可以调整图像质量.据我所知,默认质量设置为85.可以在调整大小期间调整此参数吗?

我目前正在使用以下代码:

image = Image.open(filename)
image.thumbnail((x, y), img.ANTIALIAS)
Run Code Online (Sandbox Code Playgroud)

ANTIALIAS参数可能提供最佳质量.我需要知道我们是否可以在质量选项上获得更多粒度.

python python-imaging-library

53
推荐指数
3
解决办法
6万
查看次数

无损压缩django上的图像

我正在进行优化,Google建议对图像进行无损压缩,寻找在Django中实现此功能的方法.

这是他们指定的图像,我认为要有效地完成它需要在系统范围内实施,可能使用中间件类,想知道是否有人之前已经这样做过.以下是来自pagespeed的Google Analytics的链接https://developers.google.com/speed/pagespeed/insights/?url=www.kenyabuzz.com

优化图像正确格式化和压缩图像可以节省许多字节的数据.优化以下图像,将尺寸减小627.3KiB(减少74%).

Losslessly compressing http://www.kenyabuzz.com/media/uploads/clients/kenya_buzz_2.jpg could save 594.3KiB (92% reduction).
Losslessly compressing http://www.kenyabuzz.com/media/uploads/clients/new_tribe_2.jpg could save 25KiB (44% reduction).
Losslessly compressing http://www.kenyabuzz.com/…a/uploads/clients/EthiopianAirlines2.jpg could save 3KiB (22% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/images/Nightlife.Homepage.jpg could save 1.3KiB (2% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/blog.png could save 1.1KiB (43% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/twitter.png could save 969B (52% reduction).
Losslessly compressing http://www.kenyabuzz.com/…der-Board---Email-Signature--Neutral.jpg could save 920B (2% reduction).
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/youtube.png could save 757B (31% reduction).
Run Code Online (Sandbox Code Playgroud)

python django lossless-compression

19
推荐指数
2
解决办法
1万
查看次数

如何将Python/Pillow中的PNG图像调色板减少到真正使用的颜色?

在处理了具有透明度的先前优化的索引颜色PNG图像之后(参见此处针对某些背景,因为该问题涉及相同的图像文件),使用以下代码,PLTE块似乎扩展为具有比有效使用的颜色更多的颜色.

Mu当前代码:

#!/usr/bin/env/python3
import os

from PIL import Image


source_file = os.path.expanduser("~/Desktop/prob.png")
dest_file = os.path.expanduser("~/Desktop/processed_img.png")

img = Image.open(source_file)

# Convert all colors in the palette to grayscale and save the new palette
pal = img.getpalette()
for i in range(len(pal) // 3):
    # Using ITU-R 601-2 luma transform
    g = (pal[3*i] * 299 + pal[3*i+1] * 587 + pal[3*i+2] * 114) // 1000
    pal[3*i: 3*i+3] = [g, g, g]

img.putpalette(pal)

try:
    img.save(dest_file, optimize=True, format="PNG")
except IOError:
    ImageFile.MAXBLOCK = img.size[0] …
Run Code Online (Sandbox Code Playgroud)

png image-compression python-3.x pypng pillow

8
推荐指数
1
解决办法
645
查看次数

使用 PIL 在 Python 中压缩 PNG 图像

我有一个用 Selenium Builder 记录的 python 脚本,它使用以下内容获取网页的完整浏览器屏幕截图:

fileName = "Screenshot1.png"
webDriverInstance.save_screenshot(fileName)
Run Code Online (Sandbox Code Playgroud)

文件大小约为 3.5 MB,因为它是一个很长的可滚动页面,我需要完整的浏览器屏幕截图。我需要一种方法来压缩保存的屏幕截图,或者将它们保存为较小文件大小的 PNG 图像,以便我可以使用另一个 Python 脚本(使用 smtplib)在同一电子邮件中附加和发送几个这样的屏幕截图。

我试过这个:

fileName = "Screenshot1.png"
foo = Image.open(fileName)
fileName2 = "C:\FullPath\CompressedImage.png"
foo.save(fileName2, "PNG", optimize = True)
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用。Screenshot1.png 和 CompressedImage.png 这两个文件的大小相同(大约 3.5 MB)。

我用 save 方法尝试了几个选项,但它们似乎都不起作用。运行脚本时我没有收到任何错误,但文件大小也没有减少。

foo.save(fileName2, "PNG", optimize = True, compress_level = 9)
foo.save(fileName2, "PNG", optimize = True, quality = 20)
Run Code Online (Sandbox Code Playgroud)

我正在使用 Python 2.7。有什么建议?

selenium python-imaging-library python-2.7 selenium-webdriver

7
推荐指数
2
解决办法
1万
查看次数

PIL png 调整为较小的分辨率使文件大小更大

我正在使用 python 的 PIL 调整 .png 文件的大小。由于某种原因,文件大小比原始文件大 3 倍,即使我降低了分辨率。那么如何正确保存文件呢?

Test1: png(6kb, 200x200) >> png(17kb, 100x100) <-- 与我有关的
Test2: png(6.7mb, 3600x2025) >> png(7.0mb, 3555x2000)
Test3: png(6.7mb, 3600x2025 ) >> png(0.1mb, 355x200)

img = Image.open(file_path)
img = img.resize((100, 100), Image.ANTIALIAS)
img.save(file_path, optimize=True)
Run Code Online (Sandbox Code Playgroud)

目前的结论:看起来与大型 PNG 没有太大区别,所以我可以继续我的程序。尽管尺寸增加仍然很愚蠢。

话题已经聊得差不多了:
How to reduce the image file size using PIL
如何在 PIL 中减少 png 图片文件大小

python resize image python-imaging-library

5
推荐指数
1
解决办法
2508
查看次数

是否可以使用我的机器人在 discord.py 中附加大于 150Mb 的文件

我是 discord.py 的新手,因此我试图了解它是如何工作的如果我们可以通过机器人发送大文件,我会好奇我可以发送小于 8Mb 的文件,但它显示较大文件的错误

discord.ext.commands.errors.CommandInvokeError:命令引发异常:HTTPException:413 Payload Too Large(错误代码:40005):请求实体太大

有没有办法解决这个问题?

python filesize discord discord.py

1
推荐指数
1
解决办法
1014
查看次数