我在为我的项目编译Lodepng(http://lodev.org/lodepng/)时遇到了一些麻烦。
在Encode.d中我有以下代码,编译器不期望断言语句。 删除此块可以解决问题。
invariant
{
assert(compressionLevel >=0 && compressionLevel <= 9, "invalid zlib compression level");
assert(targetColorType == ColorType.Any ||
targetColorType == ColorType.RGB ||
targetColorType == ColorType.RGBA, "colortype is not supported");
}
在Decode.d中我遇到了更多的麻烦,错误“没有声明符inout(value)” 对于中间线:
info.backgroundColor.length = chunk.data.length / 2;
foreach(index, inout value; info.backgroundColor)
value = chunk.data[index * 2];
这里有旧语法有问题,我该如何解决? 还有其他方法可以用简单的方式在D中创建png图像吗?
答案 0 :(得分:0)
不确定不变问题,但第二个问题应该通过将“inout”替换为“ref”来解决(D2语法更改)。
答案 1 :(得分:0)
我放弃了lodepng,并使用了代码 http://www.dsource.org/projects/plot2kill/browser/trunk/png.d 这经过一些细微的改变后才有效。