13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 27ce65e7125a4e1df1a274ce373c537a9df9c16cdCristy Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization 33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy dedicated to making software imaging solutions freely available. 43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy You may not use this file except in compliance with the License. 63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy obtain a copy of the License at 73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy http://www.imagemagick.org/script/license.php 93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Unless required by applicable law or agreed to in writing, software 113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy distributed under the License is distributed on an "AS IS" BASIS, 123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy See the License for the specific language governing permissions and 143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy limitations under the License. 153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickCore graphic resample methods. 173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 1883bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#ifndef MAGICKCORE_RESAMPLE_H 1983bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#define MAGICKCORE_RESAMPLE_H 203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 216398ec777e91813b64767e25358b7062a7de56cbcristy#include "MagickCore/cache-view.h" 226398ec777e91813b64767e25358b7062a7de56cbcristy 233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#if defined(__cplusplus) || defined(c_plusplus) 243ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern "C" { 253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif 263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 27449887b1f6fa43afbf82ddbc0be4dfb0391124b9anthony/* 28d76c51ed30cf4084f4434ba08925d16001d1e340cristy WARNING: The order of this table must also match the order of a table 29cf4e33d9032a6cbeed57fd35ea9f567b0062d8caanthony located in AcquireResizeFilter() in "resize.c" otherwise the users filter 30d76c51ed30cf4084f4434ba08925d16001d1e340cristy will not match the actual filter that is setup. 31449887b1f6fa43afbf82ddbc0be4dfb0391124b9anthony*/ 323ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedFilter, 353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PointFilter, 363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy BoxFilter, 373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy TriangleFilter, 383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy HermiteFilter, 39f60ffd7c60d7bf0122dc737c093d219fdb6cc5bcanthony HannFilter, 403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy HammingFilter, 413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy BlackmanFilter, 423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GaussianFilter, 433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy QuadraticFilter, 443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy CubicFilter, 453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy CatromFilter, 463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MitchellFilter, 4748f776236a1271df3f3e2643d7b550689538b5cdanthony JincFilter, 483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SincFilter, 49152700d70cf214d222b90006fab16fcf76355dbdanthony SincFastFilter, 503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy KaiserFilter, 51f60ffd7c60d7bf0122dc737c093d219fdb6cc5bcanthony WelchFilter, 523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ParzenFilter, 533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy BohmanFilter, 543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy BartlettFilter, 55152700d70cf214d222b90006fab16fcf76355dbdanthony LagrangeFilter, 56152700d70cf214d222b90006fab16fcf76355dbdanthony LanczosFilter, 5706b1edf5335d949fe79620f42d01c493b20e83e6anthony LanczosSharpFilter, 58152700d70cf214d222b90006fab16fcf76355dbdanthony Lanczos2Filter, 59152700d70cf214d222b90006fab16fcf76355dbdanthony Lanczos2SharpFilter, 60853d6979aa2981592af7020163b5030aa7185783anthony RobidouxFilter, 6145531093f82a5328ab54d5386d5c4d60e9740c5danthony RobidouxSharpFilter, 625d4a1707d28d7a581d42b1d3a2258de9a080ba4danthony CosineFilter, 63cf4e33d9032a6cbeed57fd35ea9f567b0062d8caanthony SplineFilter, 64aa806424b124f292f5d4cc7893cee4be0f679320anthony LanczosRadiusFilter, 653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SentinelFilter /* a count of all the filters, not a real filter */ 668b9f21cab4c50eb7d6e558a7a43a68833fe0b55ddirk} FilterType; 673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 682ab242ec7c723f9f95558b30f1275011aa582ca9cristy/* 692ab242ec7c723f9f95558b30f1275011aa582ca9cristy Backward compatibility for the more correctly named Jinc Filter. Original 702ab242ec7c723f9f95558b30f1275011aa582ca9cristy source of this filter is from "zoom" but it refers to a reference by Pratt, 712ab242ec7c723f9f95558b30f1275011aa582ca9cristy who does not actualy name the filter. 72f60ffd7c60d7bf0122dc737c093d219fdb6cc5bcanthony 73f60ffd7c60d7bf0122dc737c093d219fdb6cc5bcanthony also miss-spellings of common filters 7448f776236a1271df3f3e2643d7b550689538b5cdanthony*/ 75f60ffd7c60d7bf0122dc737c093d219fdb6cc5bcanthony#define BesselFilter JincFilter 76f60ffd7c60d7bf0122dc737c093d219fdb6cc5bcanthony#define WelshFilter WelchFilter 77f60ffd7c60d7bf0122dc737c093d219fdb6cc5bcanthony#define HanningFilter HannFilter 7848f776236a1271df3f3e2643d7b550689538b5cdanthony 793ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _ResampleFilter 803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ResampleFilter; 813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 823ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport MagickBooleanType 833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ResamplePixelColor(ResampleFilter *,const double,const double, 84db070957cf6bf959df9283a482377e8854c3d4d2cristy PixelInfo *,ExceptionInfo *), 853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SetResampleFilterInterpolateMethod(ResampleFilter *, 865c4e2586d27d4299a742d170d41105de1689aa46cristy const PixelInterpolateMethod), 873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SetResampleFilterVirtualPixelMethod(ResampleFilter *, 883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy const VirtualPixelMethod); 893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 903ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport ResampleFilter 913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *AcquireResampleFilter(const Image *,ExceptionInfo *), 923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *DestroyResampleFilter(ResampleFilter *); 933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 943ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport void 953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ScaleResampleFilter(ResampleFilter *,const double,const double,const double, 963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy const double), 978b9f21cab4c50eb7d6e558a7a43a68833fe0b55ddirk SetResampleFilter(ResampleFilter *,const FilterType); 983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#if defined(__cplusplus) || defined(c_plusplus) 1003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 1013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif 1023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif 104