2016-04-20 11 views
0

C++でMagick ++ apiを使用して画像のサイズを変更しようとしています。私は以下のコードを使用しており、うまくいきます。magick ++ apiのリサイズのデフォルトフィルタタイプ

Image second = image; 
Geometry newSize = Geometry(69,69); 
// Resize without preserving Aspect Ratio 
newSize.aspect(true); 
second.resize(newSize); 

結果は良いですが、私はリサイズ()関数内の他の引数を与えていない午前としてそれが使用されるデフォルトのフィルタの種類を知っておく必要があります。私はドキュメントを検索しましたが、それほど多くは見つかりませんでした。 ありがとうございました。

答えて

1

MagickCore図書館では、ReszieImageメソッドdoes default to LanczosFilterです。

filter_type=LanczosFilter; 
if (filter != UndefinedFilter) 
    filter_type=filter; 

MagickCore/resize.cからしかしMagick++にデフォルトのfilterTypeはUndefinedFilterです。以下を実行してください。

Magick::Image image("rose:"); 
std::cout << image.filterType() << std::endl; 
//=> 0 

IMHOは、常にMagick::image::filterType(const Magick::FilterTypes filterType_)でフィルタを定義します。将来コードを読むときに役立ちます。

+0

UndefinedFilterは何を意味するのですか? – san

+0

'UndefinedFilter'は、アプリケーションコードが' FilterType'を定義していないことを意味します。 ImageMagickでは、 'Undefined'接頭辞を使用して、列挙子の最初の(0)項目を標準化します – emcconville