簡體   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