我正在研究PIL并且需要知道在调整图像大小或缩略图像时是否可以调整图像质量.据我所知,默认质量设置为85.可以在调整大小期间调整此参数吗?
我目前正在使用以下代码:
image = Image.open(filename)
image.thumbnail((x, y), img.ANTIALIAS)
Run Code Online (Sandbox Code Playgroud)
该ANTIALIAS参数可能提供最佳质量.我需要知道我们是否可以在质量选项上获得更多粒度.
我正在进行优化,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) 在处理了具有透明度的先前优化的索引颜色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) 我有一个用 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
我正在使用 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 图片文件大小
我是 discord.py 的新手,因此我试图了解它是如何工作的如果我们可以通过机器人发送大文件,我会好奇我可以发送小于 8Mb 的文件,但它显示较大文件的错误
discord.ext.commands.errors.CommandInvokeError:命令引发异常:HTTPException:413 Payload Too Large(错误代码:40005):请求实体太大
有没有办法解决这个问题?
python ×4
discord ×1
discord.py ×1
django ×1
filesize ×1
image ×1
pillow ×1
png ×1
pypng ×1
python-2.7 ×1
python-3.x ×1
resize ×1
selenium ×1