问题标签 [python-imaging-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 用于裁剪和调整大小的 PIL 与 Python-GD
我正在创建自定义图像,然后将其转换为 Seadragon AJAX 的图像金字塔。图像和图像金字塔是使用 PIL 创建的。目前需要几个小时才能为大约 100 张图片生成图像和图像金字塔,这些图片的组合宽度和高度约为 32,000,000 x 1000(是的,图像很长很窄)。性能大致类似于我尝试过的另一种算法(即deepzoom.py)。我计划看看 python-gd 是否会表现得更好,因为它的大部分功能都是用 C 编码的(来自 GD 库)。我会假设性能会显着提高,但是我很想听听其他人的意见。特别是在 PIL(w/Image.ANTIALIAS)中,调整大小和裁剪速度很慢。如果我使用 Python-GD,这会显着改善吗?
提前感谢您的意见和建议。
编辑: PIL 和 python-GD 之间的性能差异似乎很小。我将重构我的代码以减少性能瓶颈并包括对多处理器的支持。我已经测试了 python 'multiprocessing' 模块。结果令人鼓舞。
python - matplotlib 中的直方图在顶部被裁剪
我有一个使用 matplotlib 生成直方图的 Python 程序。问题是生成的图像有时会在顶部被裁剪。首先,这是相关的代码摘录,其中plt
ismatplotlib.pyplot
和fig
is matplotlib.figure
:
问题出现在如下情况。我可能有 300 个元素grades
,其中 3 个容器中的元素超过 20 个,其余的不到 20 个。超过 20 个的容器的顶部将被切断,y 轴最多只能达到 20。但这并不总是发生:grades
具有相似分布的不同 300 个元素可能会正确呈现,并且 y 轴缩放以适合figsize
. 另请注意,x 轴总是正确显示。
我该怎么做才能使 y 轴正确缩放并生成适合图像的条形?
browser - 缩放存储在 S3 中的图像
我的情况是,我需要将多个网站的图像存储推送到可以无限扩展的服务(S3、CloudFiles 等)。到目前为止,在 Django 中的sorl-thumbnail的帮助下,我们已经能够允许我们的用户使用 Python 的 Imaging 库动态生成自定义缩略图大小。
通过将我们的图像移动到 S3 之类的东西上,快速创建缩略图的能力就丧失了。我们可以:
- 通过从 S3 下载源代码并在本地创建缩略图
来慢慢做 - 通过创建一组预先确定的缩略图大小(a'la Flickr)并将它们全部推送到 S3
con:它限制了可以生成的大小并存储了许多永远不会使用的文件 - 让浏览器使用 img 标签上的高度/宽度属性调整大小。
缺点:下载大于必要的文件使用的额外带宽
在这一点上,#3 看起来是一个简单的解决方案,几乎没有缺点。该网站的一些快速测试和数据表明质量没有预期的那么差(我们可以确保保持纵横比)。
关于我们可能未考虑的其他选择或缺点的任何建议?
注:图片为数码照片,仅用于网络展示。尺寸的高度/宽度范围为 1000-50 像素。
python - 在 Python,Python Image Library 1.1.6 中,如何在不调整大小的情况下扩展画布?
我可能在手册中寻找错误的东西,但我正在寻找一个图像对象并扩展它而不调整(拉伸/挤压)原始图像的大小。
玩具示例:想象一个 200 x 100 的蓝色矩形,然后我执行一些操作,我有一个新的图像对象,400 x 300,它由一个白色背景组成,一个 200 x 100 的蓝色矩形位于其上。如果我可以控制其扩展的方向或新的背景颜色等,则可以加分。
本质上,我有一个图像,我将对其进行迭代添加,并且我不知道一开始它的大小。
我想我可以抓住原始对象,制作一个新的,稍大的对象,将原始对象粘贴到那里,再画一点,然后重复。看起来它可能在计算上很昂贵。但是,我认为会有一个功能,因为我认为这是一个常见的操作。也许我猜错了。
python - 保留旧图像的范围
我在 Windows 平台上使用PIL 1.1.6、Python 2.5。
在我的程序中,我正在执行点操作(更改像素值),然后保存新图像。
当我加载新旧图像时,它们的程度不同。如何将旧图像的范围强加给新图像?
我的代码是:
python - 蟒蛇图像识别
我想做的是一个简单应用程序的图像识别:
- 给定图像(500 x 500)像素(1 色背景)
- 图像将只有 (50x50) 像素的 1 个几何图形(三角形或正方形或 smaleyface :))。
- python会做图形的识别并显示几何图形是什么。
任何链接?任何提示?任何API?谢谢 :)
python - 如何使用 PIL 调整大小并将旋转 EXIF 信息应用于文件?
我正在尝试使用 Python 来调整图片大小。用我的相机,文件都是横向写的。
exif 信息处理一个标签以要求图像查看器以某种方式旋转。由于大多数浏览器不理解此信息,我想使用此 EXIF 信息旋转图像并保留所有其他 EXIF 信息。
你知道我如何使用 Python 做到这一点吗?
阅读 EXIF.py 源代码,我发现了类似的东西:
我如何使用这些信息和 PIL 来应用它?
python - PIL 更换颜色的最佳方法?
我正在尝试从图像中删除某种颜色,但效果不如我希望的那样。我尝试做与这里看到的相同的事情使用 PIL 使所有白色像素透明?然而,图像质量有点损失,所以它会在被移除的地方留下一些奇怪的彩色像素的幽灵。如果所有三个值都低于 100,我尝试执行类似更改像素的操作,但由于图像质量较差,因此周围的像素甚至都不是黑色的。
有谁知道在 Python 中使用 PIL 替换颜色及其周围的任何东西的更好方法?这可能是我能想到的完全移除物体的唯一可靠的方法,但是我想不出一种方法来做到这一点。
图片具有白色背景和黑色文本。假设我想完全从图像中删除文本而不留下任何伪影。
真的很感谢有人的帮助!谢谢
python - 如何从 PIL 图像创建 OpenCV 图像?
我想用 OpenCV(在 Python 中)做一些图像处理,但我必须从一个 PILImage
对象开始,所以我不能使用这个cvLoadImage()
调用,因为它需要一个文件名。
这个食谱(改编自http://opencv.willowgarage.com/wiki/PythonInterface)不起作用,因为cvSetData
抱怨argument 2 of type 'void *'
。有任何想法吗?
我认为最后一个论点cvSetData
也是错误的,但我不确定它应该是什么。
python - 将 PyQt 转换为 PIL 图像
我在 QImage 中有一个图像,我想在显示它之前在 PIL 中处理它。虽然 ImageQT 类允许我将 PIL 图像转换为 QImage,但似乎没有任何东西可以从 QImage 转换为 PIL 图像。