[英]How to write these `convert` commands in Magick++?
我已经决定在我的应用程序中使用Magick ++。 我知道我想使用哪些convert
命令,但是我不知道如何将其转换为Magick ++代码。
我的应用程序应该使用固定的硬编码调色板以及可选的抖动(FD,Riemersma,Bayer,Halftone,Random)来量化导入图像中的颜色。 然后,它将输出传递给以后的代码。
这是给我想要的结果的命令。 每一个都是独立的,一个“开始运行”取决于用户设置的标志。
另外, palette.png
将是在运行时生成的Image对象,实际上不会从文件中读取。
同样, out.png
不会导出到文件,而是另一个传递给以后代码的Image对象。
convert in.png -dither FloydSteinberg -remap palette.png out.png
convert in.png -dither Riemersma -remap palette.png out.png
convert in.png -ordered-dither o2x2,2 -remap palette.png out.png
convert in.png -ordered-dither o2x2,3 -remap palette.png out.png
convert in.png -ordered-dither o2x2,4 -remap palette.png out.png
# etc.
convert in.png -ordered-dither o3x3,2 -remap palette.png out.png
# etc.
convert in.png -ordered-dither o4x4,2 -remap palette.png out.png
# etc.
convert in.png -ordered-dither o8x8,2 -remap palette.png out.png
# etc.
# etc. through all ordered dithers
convert in.png -random-threshold 0x100% -remap palette.png out.png
convert in.png -random-threshold 10x90% -remap palette.png out.png
convert in.png -random-threshold 25x75% -remap palette.png out.png
convert in.png -random-threshold 30x80% -remap palette.png out.png
对于-dither
运算符,请使用Magick::Image.quantizeDitherMethod()
方法。
Magick::Image img("in.png");
img.quantizeDitherMethod(Magick::FloydSteinbergDitherMethod);
对于-remap
运算符,请使用Magick::Image.map()
方法。
Magick::Image img("in.png");
// ...
Magick::Image remap("palette.png");
img.map(remap, true);
对于-ordered-dither
运算符,请使用Magick::Image.orderedDither()
方法。
Magick::Image img("in.png");
// ...
img.orderedDither("o3x3,2");
对于-random-threshold
运算符,请使用Magick::Image.randomThreshold()
-random-threshold
Magick::Image.randomThreshold()
方法。
Magick::Image img("in.png");
// ...
img.randomThreshold(0.3 * QuantumRange, 0.8 * QuantumRange);
检出Image.h头文件和其他Magick ++的源代码文件以供参考。 我认为文档/示例有些过时,但是开发人员的评论很清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.