2016-04-20 13 views
0

Ich versuche, Bilder mit Magick ++ API in C++ zu skalieren. Ich habe den folgenden Code verwendet und es funktioniert gut.Standard-Filtertyp für Größenanpassung in magick ++ api

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

Das Ergebnis ist gut, aber ich muß den Standard-Filtertyp wissen, es verwendet, als ich kein anderes Argument geben würde in Resize() Funktion. Ich habe in der Dokumentation gesucht, konnte aber nicht viel finden. Danke für die Hilfe.

Antwort

1

In MagickCore Bibliothek, die ReszieImage Methode does default to LanczosFilter.

Von MagickCore/resize.c

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

jedoch in Magick++ ist der Standard-Filtertype UndefinedFilter. Nehmen Sie die folgenden ..

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

IMHO, definieren Sie den Filter immer mit Magick::image::filterType(const Magick::FilterTypes filterType_). Es hilft, wenn Sie den Code in der Zukunft lesen.

+0

Können Sie mir sagen, was UndefinedFilter bedeutet? – san

+0

Der 'UndefinedFilter' bedeutet einfach, dass Ihr Anwendungscode keinen' FilterType' definiert hat. In ImageMagick wird das Präfix 'Undefined' verwendet, um das erste Element (0) in Enumeratoren zu standardisieren – emcconville

Verwandte Themen