UIImage の背景を削除しようとしていて、MagicWand の iOS ポートを使用することになりました。
メソッド MagickFloodfillPaintImage を呼び出して、フラッド フィル アルゴリズムを使用して、選択したピクセルを正常に削除することができました。ただし、現在の課題は、フラッド フィル除去プロセスによって残された鋭いエッジを柔らかくすることです。
以下のコードを使用して背景を削除しています。
PixelIterator* iterator = NULL;
PixelWand** pixels = NULL;
size_t x;
iterator = NewPixelRegionIterator(magick_wand, _touchCoords.x*scale, _touchCoords.y*scale, 1, 1);
pixels = PixelGetNextIteratorRow(iterator,&x);
bc_wand = pixels[0];
channel = ParseChannelOption("rgba");
status = MagickFloodfillPaintImage(magick_wand, channel, fc_wand, _tolerance, bc_wand, _touchCoords.x*scale, _touchCoords.y*scale, MagickFalse);
if (status == MagickFalse) {
ThrowWandException(magick_wand);
}
どんな助けでも大歓迎です!