0

我正在尝试使用 C++ 中的 Magick++ api 调整图像大小。我使用了以下代码,它运行良好。

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

结果很好,但我需要知道它使用的默认过滤器类型,因为我没有在 resize() 函数中提供任何其他参数。我在文档中搜索过,但找不到太多。感谢您的帮助。

4

2 回答 2

1

在 MagickCore 库中,该ReszieImage方法默认为LanczosFilter.

MagickCore/resize.c

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

但是在Magick++默认的 filterType 中是UndefinedFilter. 采取以下..

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

恕我直言,始终使用 定义过滤器Magick::image::filterType( const Magick::FilterTypes filterType_ )。将来阅读代码时会有所帮助。

于 2016-04-20T18:35:18.547 回答
0

我已经得到了我自己问题的答案。这是Lanczos 重采样。可以在这里找到一个非常好的magick++ 文档。

于 2016-04-20T10:40:47.880 回答