(custom_image_filters)= # 사용자 정의 이미지 필터 Wagtail은 [다양한 이미지 처리 기능](image_tag)을 제공합니다. 사용자 정의 이미지 처리 기능을 추가하려면, `wagtail_hooks.py` 파일에 `register_image_operations` 훅을 추가하세요. 이 예제에서 `willow.image` 는 Pillow 이미지 인스턴스입니다. 만약 다른 이미지 라이브러리를 사용하거나 여러 이미지 라이브러리를 지원하려면, 필터 코드를 그에 맞게 수정해야 합니다. 더 자세한 정보는 [Willow 문서](https://willow.wagtail.org/stable/)를 참조하세요. ```python from PIL import ImageFilter from wagtail import hooks from wagtail.images.image_operations import FilterOperation class BlurOperation(FilterOperation): def construct(self, radius): self.radius = int(radius) def run(self, willow, image, env): willow.image = willow.image.filter(ImageFilter.GaussianBlur(radius=self.radius)) return willow @hooks.register("register_image_operations") def register_image_operations(): return [ ("blur", BlurOperation), ] ``` 템플릿에서는 다음과 같이 필터를 사용합니다: ```html+Django {% load wagtailimages_tags %} {% image page.photo width-400 blur-7 %} ``` 만약 사용자 정의 이미지 필터가 `Image` 내의 필드, 예를 들어 초점을 정의하는 필드들에 의존한다면, 서브클래싱한 `FilterOperation` 에 해당 필드명들을 나열하는 `vary_fields` 속성을 추가하세요. 이렇게 하면 초점이 변경될 때마다 새로운 버전의 이미지가 생성됩니다: ```python class BlurOutsideFocusPointOperation(FilterOperation): vary_fields = ( "focal_point_width", "focal_point_height", "focal_point_x", "focal_point_y", ) # ... ```