5个不稳定版本
0.4.2 | 2020年3月2日 |
---|---|
0.4.1 | 2019年9月14日 |
0.4.0 | 2019年9月14日 |
0.2.0 | 2019年8月3日 |
0.1.0 | 2019年7月27日 |
#95 在 多媒体 中
2MB
929 行
包含(《DOS exe》,1MB) glitchup.exe
glitchup
注意: 此项目仍在开发中。您可以通过以下方式安装当前的可执行文件:
cargo安装 glitchup
- 从这里下载程序
...然而它是不完整的,您可能会遇到错误。
如果您有任何问题,例如 "什么是databending?" 或 "你为什么制作这个?",请查看问答
如果您想先了解一下databending,请查看databending教程!
选项
示例选项文件可以在Options.toml
中找到。我将解释一些重要部分
输入 + 输出
需要设置inputfile
选项来指定要databend的文件
inputfile = "somefile.jpeg"
您也可以指定不在当前目录中的文件。测试了文件在子目录中(dir/file.jpeg
),然而没有测试文件在当前目录之外(../file.jpeg
)。这可能可行,但是目前还需要进一步测试。
默认情况下,输出文件将与输入文件同名(并附加一个字符串)。如果您想用不同的名称/目录保存文件,可以指定outputfile
选项。
inputfile = "somefile.jpeg"
outputfile = "otherfile.jpeg"
注意: 输出文件的名称将不会与您指定的名称完全相同。目前,输出文件名称的格式为name<mutations>.extension
。这是为了显示文件所经历的突变,同时也避免覆盖现有文件。
全局选项
目前有4个全局选项
times
:指定程序运行次数。iterations
:指定在保存之前突变应执行的次数。chunksize
:每次突变时要突变的数据块的大小。mutations
:要使用的突变。
所以,根据以下选项
times = 2
iterations = [5,10]
chunksize = 1000
mutations = [ ["Reverse"], ["Swap"] ]
程序将运行两次,每次运行都会有一个输出
- 对
1KB
数据块进行Reverse
突变5到10次 - 通过应用
Swap
操作5到10次来对1KB
块进行突变
...总共产生2 * 2个输出文件。(次数 * 突变次数)
范围
如您所见,iterations
是一个包含2个整数的数组。几乎所有的突变特定选项都可以通过范围设置,即一个包含2个数字的数组
iterations = x
:x
次迭代iterations = [x,y]
:在x
和y
次迭代之间。
对于每次迭代,将在x
和y
之间随机生成一个数字。因此,如果您想在两个边界之间随机生成一个设置,请使用[x,y]
。否则,如果您的设置需要更具体,只需使用一个文字数字即可。
突变
mutations
选项已被从BEND++重写!现在它使用一个数组数组
mutations = [
["Reverse", "Swap"],
["Shuffle"],
...
]
mutations
的每个元素都是一个数组,代表一个单独的输出。这个数组可以包含多个连在一起的突变!
在上面的选项中,这意味着第一个文件将首先通过Reverse
进行突变,然后通过Swap
,然后保存。然后创建原始文件的一个新副本,通过Shuffle
进行突变,然后保存。依此类推...
特定选项
一些突变可能有自己的选项需要设置。例如,目前有一个需要设置loops
选项的Loops
突变。每个突变都有自己的配置,如[<Mutation>Config]
,因此要配置Loops
[LoopsConfig]
loops = 10
这将设置loops
为10
用于Loop
突变。如果您忘记指定此选项,程序将指定它需要哪些选项以及选项的名称。
TODO: Add example of error.
注意:在上面的情况下,只有当您在mutations
选项中包含"Loops"
时,才需要指定loops
选项!如果排除"loops"
,则上面的部分也可以省略。
覆盖全局选项
例如,如果您想为Loops
设置不同的chunksize
值怎么办?您可以通过在[LoopsConfig]
下指定它们来覆盖它们
[LoopsConfig]
loops = 10
chunksize = [10,1000]
在这种情况下,将使用全局设置的iterations
,但是将使用来自[LoopsConfig]
的chunksize
。
反馈!
这个项目目前是一个原型。因此,任何形式的反馈都备受赞赏!如果您想联系我,可以使用我的电子邮件,或者如果您在Fediverse上,可以在那里联系我!
您还可以提交一个问题,我会尽快回复!不要担心 - 接受任何形式的反馈,无论是功能请求、意见还是批评。
待办事项
- 更新代码的结构/格式
- 改进结构,使用
CfgMap
代替。 - 寻找一种方法来改进突变(Mutations)的结构,特别是随机生成范围内的设置。
- 改进结构,使用
- 通过可能添加命令行界面(CLI)应用来改进用户体验(UX)。
- 通过可能添加图形用户界面(GUI)来改进用户体验(UX)。