背景が赤い画像「objects.png」があり、背景を透明にしようとしています。コードは簡単ですが、どういうわけか、目的の結果を得ることができません。私はこの ImageMagick ビジネスにまったく慣れておらず、これが Magick++ を使用した最初のプログラムです。なので、詳しく教えていただけると助かります。前もって感謝します。コードは次のようになります。
#include <iostream>
#include <Magick++.h>
using namespace std;
using namespace Magick;
int main(){
Image my_image("objects.png");
Color bg_color = my_image.pixelColor(0,0);
Color new_bg_color(0, MaxRGB, 0, MaxRGB);
for (int i=0;i<my_image.columns();i++){
for (int j=0;j<my_image.rows();j++){
//cout<<"(i,j) : ("<<i<<","<<j<<")\n";
if (my_image.pixelColor(i,j) == bg_color){
my_image.pixelColor(i,j,new_bg_color);
}
}
}
my_image.write("new_objects.png");
}
画像objects.pngは
これを出力として取得しています