PPTX DOCX XLSX PDF ODP
Aspose.Imaging  for Python
TIF

Use Python to Apply Filters for TIF Images

Create Python Apps to Filter TIF Images and Photos via Server APIs

How to Filter TIF Images and Photos with Python

Every well-captured photo carries the potential for improvement, a chance to evolve into something entirely distinct, and emerge as a one-of-a-kind creation. Filters serve as a versatile tool in image and photo enhancement, allowing you to selectively enhance sharpness, introduce blur, or eliminate color artifacts for a truly distinctive result. Experiment with image effects individually or in combination to seamlessly blend color gradients, eliminate undesired noise, and enhance the sharpness of object edges in your photo. To apply these image filters to TIF files, we’ll be utilizing Aspose.Imaging for Python via .NET API which is a feature-rich, powerful and easy to use image manipulation and conversion API for Python platform. You may install it using the following command from your system command.

The system command line

>> pip install aspose-imaging-python-net

Steps to Filter TIF via Python

You need the aspose-imaging-python-net to try the following workflow in your own environment.

  • load TIF files with Image.Load method;
  • filter image;
  • save filtered image to disc in the supported by Aspose.Imaging format.

System Requirements

Aspose.Imaging for Python is supported on all major operating systems. Just make sure that you have the following prerequisites.

  • Microsoft Windows / Linux with .NET Core Runtime.
  • Python and PyPi package manager.
 

Filter TIF images - Python

from aspose.imaging import RasterImage, Image, IMultipageImage, Rectangle
from aspose.imaging.imagefilters.filteroptions import *
from aspose.imaging.imageoptions import PngOptions
from aspose.pycore import as_of, is_assignable
import os
if 'TEMPLATE_DIR' in os.environ:
templates_folder = os.environ['TEMPLATE_DIR']
else:
templates_folder = r"C:\Users\USER\Downloads\templates"
delete_output = 'SAVE_OUTPUT' not in os.environ
def delete_file(file):
if delete_output:
os.remove(file)
def small_rectangular_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), SmallRectangularFilterOptions()), "smallrectangular")
def big_rectangular_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), BigRectangularFilterOptions()), "bigrectangular")
def sharpen_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), SharpenFilterOptions()), "sharpen")
def motion_wiener_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), MotionWienerFilterOptions(20, 2, 0)), "motionwiener")
def bilateral_smoothing_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), BilateralSmoothingFilterOptions()), "bilateralsmoothing")
def gauss_blur_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), GaussianBlurFilterOptions(5, 4)), "gaussblur")
def gauss_wiener_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), GaussWienerFilterOptions(5, 5)), "gausswiener")
def median_filter():
filter_images(lambda image: image.filter(Rectangle(image.width // 6, image.height // 6, image.width * 2 // 3, image.height * 2 // 3), MedianFilterOptions(20)), "median")
def filter_images(do_filter, filter_name):
obj_init = []
obj_init.append("jpg")
obj_init.append("png")
obj_init.append("bmp")
obj_init.append("apng")
obj_init.append("dicom")
obj_init.append("jp2")
obj_init.append("j2k")
obj_init.append("tga")
obj_init.append("webp")
obj_init.append("tiff")
obj_init.append("gif")
obj_init.append("ico")
raster_formats = obj_init
obj_init2 = []
obj_init2.append("svg")
obj_init2.append("otg")
obj_init2.append("odg")
obj_init2.append("eps")
obj_init2.append("wmf")
obj_init2.append("emf")
obj_init2.append("wmz")
obj_init2.append("emz")
obj_init2.append("cmx")
obj_init2.append("cdr")
vector_formats = obj_init2
all_formats = raster_formats
all_formats.extend(vector_formats)
for format_ext in all_formats:
input_file = os.path.join(templates_folder, f"template.{format_ext}")
is_vector_format = format_ext in vector_formats
if is_vector_format:
input_file = rasterize_vector_image(format_ext, input_file)
output_file = os.path.join(templates_folder, f"{filter_name}_{format_ext}.png")
print(format_ext)
# explicit type casting from Image to RasterImage
with as_of(Image.load(input_file), RasterImage) as image:
multi_page = None
# if image implements an IMultipageImage interface
if is_assignable(image, IMultipageImage):
multi_page = as_of(image, IMultipageImage)
if multi_page is not None and multi_page.page_count > 1:
page_index = 0
for page in multi_page.pages:
file_name = f"{filter_name}_page{page_index}_{format_ext}.png"
do_filter(as_of(page, RasterImage))
page.save(templates_folder + file_name, PngOptions())
delete_file(templates_folder + file_name)
page_index += 1
else:
do_filter(image)
image.save(output_file, PngOptions())
delete_file(output_file)
if is_vector_format:
delete_file(input_file)
def rasterize_vector_image(format_ext, input_file):
output_file = os.path.join(templates_folder, "rasterized.{format_ext}.png")
with Image.load(input_file) as image:
image.save(output_file, PngOptions())
return output_file
# run
median_filter()
 
  • About Aspose.Imaging for Python API

    Aspose.Imaging API is an image processing solution to create, modify, draw or convert images (photos) within applications. It offers: cross-platform Image processing, including but not limited to conversions between various image formats (including uniform multi-page or multi-frame image processing), modifications such as drawing, working with graphic primitives, transformations (resize, crop, flip&rotate, binarization, grayscale, adjust), advanced image manipulation features (filtering, dithering, masking, deskewing), and memory optimization strategies. It’s a standalone library and does not depend on any software for image operations. One can easily add high-performance image conversion features with native APIs within projects. These are 100% private on-premise APIs and images are processed at your servers.

    Filter TIF via Online App

    Filter TIF documents by visiting our Live Demos website The live demo has the following benefits

      No need to download or setup anything
      No need to write any code
      Just upload your TIF files and hit "Filter now" button
      Instantly get the download link for the resultant file

    TIF What is TIF File Format

    Read More

    Other Supported Filter Formats

    Using Python, one can easily Filter different formats including:

    APNG (Animated Portable Network Graphics)
    BMP (Bitmap Picture)
    ICO (Windows icon)
    JPG (Joint Photographic Experts Group)
    JPEG (Joint Photographic Experts Group)
    DIB (Device Independent Bitmap)
    DICOM (Digital Imaging & Communications)
    DJVU (Graphics Format)
    DNG (Digital Camera Image)
    EMF (Enhanced Metafile Format)
    EMZ (Windows Compressed Enhanced Metafile)
    GIF (Graphical Interchange Format)
    JP2 (JPEG 2000)
    J2K (Wavelet Compressed Image)
    PNG (Portable Network Graphics)
    TIFF (Tagged Image Format)
    WEBP (Raster Web Image)
    WMF (Microsoft Windows Metafile)
    WMZ (Compressed Windows Media Player Skin)
    TGA (Targa Graphic)
    SVG (Scalable Vector Graphics)
    EPS (Encapsulated PostScript Language)
    CDR (Vector Drawing Image)
    CMX (Corel Exchange Image)
    OTG (OpenDocument Standard)
    ODG (Apache OpenOffice Draw Format)