2012-01-20 37 views
1

我用屏幕抓取屏幕抓取PIL图像,将它们保存在队列中并将它们写入到jpg图像序列中。减少内存中的PIL图像大小

我使用生产者线程捕获和工作者将图像写入磁盘。

但是我注意到,这个队列真的很大,尽管写入的输出并不是真的那么大,当用jpg压缩时。这导致抓取被放入磁盘的扩展内存中,使得写入过程更慢。由于我的数据突然爆发,我可以花费一些时间写入磁盘,但是如果内存写入磁盘,它会变得太慢。

有没有办法在将图像添加到队列中之前压缩图像?

欢呼声,

回答

0

这里有一个想法,因为他们进来合并图像

经过一段固定时间,或设置金额合并,压缩图像。将图像分为单独的图像。

/利润

+0

不幸的是,这并不减少他们使用的内存量。 – tarrasch

+0

你只会在内存中的图像。当大小达到某个阈值时,将其存储在一个文件中。当队列中存储的文件名数量达到一定数量时,开始处理它们。或者,当空闲时间达到一定数量时,开始处理它们。 –