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