如何在Magick ++中为FX功能指定通道?

时间:2017-04-23 15:15:56

标签: c++ imagemagick magick++

以下是描述ImageMagick中使用FX-feature的文章:http://www.imagemagick.org/Usage/transform/#fx

我需要在Magick ++(C ++)中使用FX。如何指定我工作的频道?例如:imagemagick命令行:

convert  -size 64x64 xc:black -channel blue -fx '1/2' fx_navy.gif

如何将其翻译成Magick ++?我可以这样做:

Magick::Image img( Magick::Geometry( 64, 64 ), Magick::Color( "black" ) );
img.fx( "1/2" );
img.write( "fx_navy.gif" );

< - 但它适用于所有频道,不仅适用于蓝色频道。实际上它会是灰色或类似的东西。如何指定频道?

或者如何根据Magick ++做这样的事情?

convert -size 100x100 xc: +size xc:red xc:yellow xc:lime \
          -fx 'ar=1/max(1,  (i-50)*(i-50)+(j-10)*(j-10)  );
               br=1/max(1,  (i-10)*(i-10)+(j-70)*(j-70)  );
               cr=1/max(1,  (i-90)*(i-90)+(j-90)*(j-90)  );
               ( u[1]*ar + u[2]*br + u[3]*cr )/( ar+br+cr )' \
          gradient_shepards.gif

1 个答案:

答案 0 :(得分:2)

ERROR in ./imgs/imgInStyles.jpg Module build failed: TypeError: Cannot read property 'bypassOnDebug' of null at Object.module.exports (D:\work\research\deployment\webpack\webpack2-config-sample\node_modules\image-webpack-loader\index.js:30:26) @ ./~/css-loader!./~/postcss-loader!./~/sass-loader/lib/loader.js!./app/pages/home/home.scss 6:158-198 的第二个参数是频道选择器。

Magick::Image.fx

关于第二个问题。您需要利用一些STL方法&技术。

Magick::Image img( Magick::Geometry( 64, 64 ), Magick::Color( "black" ) );
img.fx( "1/2", Magick::BlueChannel );

output.png