Image Magick 関数呼び出しに変換する必要がある convert コマンドがあります。
convert.exe bar.jpg -fuzz 40% -fill "rgb(53456, 35209, 30583)" -opaque "rgb(65535, 65535, 65535)" foo2.jpg
同じ効果を得るために適用する必要がある方法の例を誰かが教えてくれるかどうか疑問に思っていましたか?
助けてくれてありがとう!
Image Magick 関数呼び出しに変換する必要がある convert コマンドがあります。
convert.exe bar.jpg -fuzz 40% -fill "rgb(53456, 35209, 30583)" -opaque "rgb(65535, 65535, 65535)" foo2.jpg
同じ効果を得るために適用する必要がある方法の例を誰かが教えてくれるかどうか疑問に思っていましたか?
助けてくれてありがとう!
Magick++のドキュメントは非常に明確ですが、c & MagickWandを使用した例は他にもたくさんあります。ほとんどの場合、-fillはさまざまなアクションに適用できる色属性を設定するだけです。Magick++ では、Image.fillColorを使用します。ただし、Image.opaqueメソッドはある色を別の色に交換します。不透明な方法に加えて、 Image.colorFuzzで-fuzzオプションを設定することにより、色のしきい値を調整できます。
#include <Magick++.h>
#include <iostream>
using namespace std;
using namespace Magick;
int main(int argc, char **argv)
{
InitializeMagick(*argv);
// Setup items
Image image;
/*
Remember to read & understand Magick++/Color.h to
ensure you are initializing the correct color constructor.
*/
Color target = Color("rgb(65535, 65535, 65535)");
Color fill = Color("rgb(53456, 35209, 30583)");
// Convert 40% to double
const double fuzz = 40*QuantumRange/100;
// Read image object
image.read("bar.jpg");
// Set fuzz threshold
image.colorFuzz(fuzz);
// Apply opaque paint
image.opaque(target,fill);
// Save image
image.write("foo2.jpg");
return 0;
}
#include <stdio.h>
#include <wand/MagickWand.h>
int main(int argc, char **argv) {
// MagickWand items
MagickWand *image = NULL;
PixelWand *target = NULL;
PixelWand *fill = NULL;
// Convert 40% to double
const double fuzz = 40*QuantumRange/100;
MagickWandGenesis();
// Setup Wand
target = NewPixelWand();
fill = NewPixelWand();
image = NewMagickWand();
// Load image
MagickReadImage(image,"bar.jpg");
// Set Colors
PixelSetColor(target,"rgb(65535, 65535, 65535)");
PixelSetColor(fill,"rgb(53456, 35209, 30583)");
// Apply effect(wand,0.40);
MagickOpaquePaintImage(image,target,fill,fuzz,MagickFalse);
// Save image
MagickWriteImages(image,"foo2.jpg",MagickTrue);
// Clean up
image=DestroyMagickWand(image);
MagickWandTerminus();
return 0;
}