2016-04-20 12 views
0

我正在嘗試使用Magick ++ api在C++中調整圖像大小。我使用了下面的代碼,它運行良好。在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

MagickCore/resize.c

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

然而在Magick++默認過濾式是UndefinedFilter。看看下面的..

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

恕我直言,始終與Magick::image::filterType(const Magick::FilterTypes filterType_)定義過濾器。這將有助於您在將來閱讀代碼。

+0

你能告訴我UndefinedFilter是什麼意思嗎? – san

+0

'UndefinedFilter'僅僅意味着你的應用程序代碼沒有定義一個'FilterType'。在ImageMagick中,「Undefined」前綴用於標準化枚舉器中的第一個(0)項 – emcconville