繁体   English   中英

如何用Magick ++编写这些`convert`命令?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM