2015-07-19 55 views
0

我想用Pygame在Python中创建一个小型图像编辑程序。我想存储应用程序正在处理的像素数组,因此我可以撤消/重做功能和缩放。我将如何去做这件事?如何在Pygame中存储像素数组

我曾尝试列表中的存储列表内的像素为RGB值的列表,像这样:

x1 = [[255, 255, 255]] 
x2 = [[255, 0, 0]] 
y1 = [x1, x2] 

但我很难相信这是任何方式的最佳途径。

回答

0

谈到undo/redo,请检查Command Design Pattern(python示例)。

由于您没有提供太多代码,所以基本方法可能依赖于使用您的坐标维护一个唯一列表。应该改变该列表的一件事是Command,它将包含undoredo方法来恢复列表状态。

更新

我不知道我完全理解你正在努力实现的到底是什么,但可以dictionary为您服务:

coords = {} 
coords['y1'] = [[255,255,255],[255,0,0]] #add dynamic keys to your dictionary and fill them with the right values 

如果需要,您也这里得到加分店铺转账您的资料稍后,您可以简单地得到您的数据在JSON这样的格式:

import json 
... 
json.dumps(coords) #returns the json string containing your data 
+0

有趣,但我更感兴趣的是存储数据的任何其他格式 - 主要是为了实现缩放等。我知道名单会起作用,所以在那种情况下,我会用一个很长的名单还是名单?继承似乎是一种非常好的方式来执行命令等,谢谢! – ajbengineer