Please bookmark this page to avoid losing your image tool!

Image Kodak Ektar 100 Film Filter Effect

(Free & Supports Bulk Upload)

Drag & drop your images here or

The result will appear here...
You can edit the below JavaScript code to customize the image tool.
function processImage(originalImg) {
    const canvas = document.createElement('canvas');
    
    // Ensure the originalImg is a loaded image with valid dimensions
    if (!originalImg || typeof originalImg.width === 'undefined' || originalImg.width === 0 || typeof originalImg.height === 'undefined' || originalImg.height === 0) {
        console.error("Provided originalImg is not valid or not loaded.");
        // Return an empty canvas or handle as an error appropriately
        canvas.width = 1; // Minimal canvas
        canvas.height = 1;
        return canvas;
    }

    canvas.width = originalImg.width;
    canvas.height = originalImg.height;

    const ctx = canvas.getContext('2d', { willReadFrequently: true });

    if (!ctx) {
        console.error("Could not get 2D rendering context.");
        // Fallback: return the canvas, which might be empty or not properly initialized
        return canvas;
    }

    try {
        ctx.drawImage(originalImg, 0, 0, canvas.width, canvas.height);
    } catch (e) {
        console.error("Error drawing image to canvas: ", e);
        // Return canvas, possibly empty or with partial draw if error occurred
        return canvas;
    }

    let imageData;
    try {
        imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
    } catch (e) {
        console.error("Error getting ImageData (e.g., canvas tainted from cross-origin image): ", e);
        // If canvas is tainted, pixel manipulation is not possible.
        // Return the canvas with the original image drawn.
        return canvas;
    }
    
    const data = imageData.data;

    // Kodak Ektar 100 Film Effect Parameters. These values are tuned to approximate
    // the known characteristics of Ektar 100 film (high saturation, fine grain,
    // punchy reds/blues, good contrast, slight warmth).
    const CONTRAST_FACTOR = 1.15;       // Increases contrast for a "punchier" image.
    const SATURATION_FACTOR = 1.30;     // Ektar is known for its vivid, saturated colors.
    
    // Channel-specific multipliers to adjust the color palette.
    const RED_CHANNEL_MULTIPLIER = 1.10;  // Enhances reds, making them more vibrant.
    const GREEN_CHANNEL_MULTIPLIER = 0.97;// Slightly subdues or shifts greens. Ektar greens are often described as natural but not overly dominant.
    const BLUE_CHANNEL_MULTIPLIER = 1.08; // Deepens and enriches blues.

    // Additive warmth to introduce a subtle warm color cast.
    const WARMTH_ADD_R = 6; // Adds warmth via the red channel.
    const WARMTH_ADD_G = 3; // Adds a smaller amount of warmth via the green channel.
                               // Blue channel is not warmed to maintain clarity of cool tones.

    // Standard luminance coefficients for saturation calculation.
    const R_LUM_COEFF = 0.299;
    const G_LUM_COEFF = 0.587;
    const B_LUM_COEFF = 0.114;

    for (let i = 0; i < data.length; i += 4) {
        let r = data[i];
        let g = data[i+1];
        let b = data[i+2];

        // 1. Apply Contrast
        // Pixel values are normalized to [0,1], adjusted around the 0.5 midpoint, then scaled back.
        r = (r / 255.0 - 0.5) * CONTRAST_FACTOR + 0.5;
        g = (g / 255.0 - 0.5) * CONTRAST_FACTOR + 0.5;
        b = (b / 255.0 - 0.5) * CONTRAST_FACTOR + 0.5;
        
        // Convert back to 0-255 range and clamp
        r = Math.max(0, Math.min(1.0, r)) * 255.0;
        g = Math.max(0, Math.min(1.0, g)) * 255.0;
        b = Math.max(0, Math.min(1.0, b)) * 255.0;

        // 2. Apply Saturation
        // Calculates luminance, then adjusts color components away from or towards this gray value.
        const lum = R_LUM_COEFF * r + G_LUM_COEFF * g + B_LUM_COEFF * b;
        r = lum + SATURATION_FACTOR * (r - lum);
        g = lum + SATURATION_FACTOR * (g - lum);
        b = lum + SATURATION_FACTOR * (b - lum);
        
        // Clamp values after saturation
        r = Math.max(0, Math.min(255.0, r));
        g = Math.max(0, Math.min(255.0, g));
        b = Math.max(0, Math.min(255.0, b));

        // 3. Apply Ektar Color Signature (Channel Multipliers and Warmth)
        r *= RED_CHANNEL_MULTIPLIER;
        g *= GREEN_CHANNEL_MULTIPLIER;
        b *= BLUE_CHANNEL_MULTIPLIER;
        
        // Add warmth
        r += WARMTH_ADD_R;
        g += WARMTH_ADD_G;
        // b is intentionally not increased by WARMTH_ADD to preserve cool blue tones.

        // Final clamp and assignment
        // Values are rounded to the nearest integer for pixel data.
        data[i]   = Math.max(0, Math.min(255, Math.round(r)));
        data[i+1] = Math.max(0, Math.min(255, Math.round(g)));
        data[i+2] = Math.max(0, Math.min(255, Math.round(b)));
        // Alpha channel (data[i+3]) is preserved.
    }

    ctx.putImageData(imageData, 0, 0);
    return canvas;
}

Free Image Tool Creator

Can't find the image tool you're looking for?
Create one based on your own needs now!

Description

The Image Kodak Ektar 100 Film Filter Effect tool allows users to apply a filter that mimics the vibrant and saturated color profile characteristic of Kodak Ektar 100 film. This tool enhances the contrast, clarity, and warmth of images, making it ideal for photographers and graphic designers looking to achieve a classic film-like aesthetic in their digital photos. It is particularly useful for enhancing landscape photography, portraits, and any imagery where rich colors and deep contrasts are desired.

Leave a Reply

Your email address will not be published. Required fields are marked *

Other Image Tools:

Image Yellow Filter Black And White Effect Tool

Image Expired Film Filter Effect Tool

Image Circular Polarizer Filter Effect Tool

Image Lomography Purple Filter Effect Tool

Image Split Field Filter Effect Tool

Image Soft Focus Filter Effect Tool

Image Medium Format Film Filter Effect

Image Wide-Angle Lens Perspective Filter Effect Tool

Olympus OM-1 Photo Filter Effect Tool

Image Fujifilm Velvia Filter Effect Tool

Image Lensbaby Selective Focus Filter Effect Tool

Image Color Temperature Blue Filter Effect Tool

Image UV Filter Effect Tool

Image Red Filter Black And White Effect Tool

Image Redscale Film Filter Effect

Image Cinestill 800T Filter Effect Tool

Image Glimmer Glass Filter Effect Tool

Image Star Filter Effect Tool

Image Kodak Portra 400 Film Filter Effect

Image Fujifilm Superia Filter Effect Tool

Image Tilt-Shift Lens Filter Effect Tool

Image Graduated Neutral Density Filter Effect Tool

Image Diana Camera Filter Effect Tool

Image 35mm Film Camera Filter Effect Tool

Image Pro-Mist Filter Effect Application

Image Cross-Processed Slide Film Filter Effect Application

Image Pull-Processed Film Filter Effect Tool

Image Infrared Filter Effect Application

Image Ilford Delta 3200 Filter Effect Application

Image Cooling Filter Effect Tool

Image Fujifilm Instax Filter Effect Creator

Image Black And White Effect With Orange Filter

Image Kodak Tri-X Filter Effect Tool

Image Ilford HP5 Plus Filter Effect Application

Image Orchestra Seating Filter Effect

Image Braille Text Filter Effect

See All →