Please bookmark this page to avoid losing your image tool!

Image Lee Big Stopper 10-Stop ND Filter Effect Tool

(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.
async function processImage(originalImg, blurRadiusParam = 5, colorCastAmountParam = 0.1, castColorParam = "60,80,120", desaturationParam = 0.05) {
    // Parameter validation and type coercion
    let blurRadius = Number(blurRadiusParam);
    if (isNaN(blurRadius)) {
        console.warn(`Invalid blurRadius provided: "${blurRadiusParam}". Must be a number. Using default 5.`);
        blurRadius = 5;
    }
    blurRadius = Math.max(0, blurRadius); // Ensure non-negative

    let colorCastAmount = Number(colorCastAmountParam);
    if (isNaN(colorCastAmount)) {
        console.warn(`Invalid colorCastAmount provided: "${colorCastAmountParam}". Must be a number. Using default 0.1.`);
        colorCastAmount = 0.1;
    }
    colorCastAmount = Math.max(0, Math.min(1, colorCastAmount)); // Clamp between 0 and 1

    let desaturation = Number(desaturationParam);
    if (isNaN(desaturation)) {
        console.warn(`Invalid desaturation provided: "${desaturationParam}". Must be a number. Using default 0.05.`);
        desaturation = 0.05;
    }
    desaturation = Math.max(0, Math.min(1, desaturation)); // Clamp between 0 and 1

    const castColorStr = String(castColorParam); // Ensure it's a string for split
    const colorParts = castColorStr.split(',').map(s => parseFloat(s.trim()));
    let parsedCastR, parsedCastG, parsedCastB;

    if (colorParts.length === 3 && colorParts.every(num => !isNaN(num) && num >= 0 && num <= 255)) {
        [parsedCastR, parsedCastG, parsedCastB] = colorParts;
    } else {
        console.warn(`Invalid castColor provided: "${castColorParam}". Expected 'R,G,B' string with R,G,B values between 0-255. Using default "60,80,120".`);
        parsedCastR = 60; // Default cool blue/grey tint
        parsedCastG = 80;
        parsedCastB = 120;
    }

    const canvas = document.createElement('canvas');
    const ctx = canvas.getContext('2d');

    const imgWidth = originalImg.naturalWidth || originalImg.width;
    const imgHeight = originalImg.naturalHeight || originalImg.height;

    canvas.width = imgWidth;
    canvas.height = imgHeight;

    // Create a temporary canvas to hold the image after color/desaturation ops, before blur
    const tempCanvas = document.createElement('canvas');
    const tempCtx = tempCanvas.getContext('2d');
    tempCanvas.width = imgWidth;
    tempCanvas.height = imgHeight;

    // 1. Draw original image to temp canvas
    tempCtx.drawImage(originalImg, 0, 0, imgWidth, imgHeight);

    // 2. Pixel manipulation for color cast and desaturation on tempCanvas
    // Only process pixels if there's an effect to apply
    if (colorCastAmount > 0 || desaturation > 0) {
        const imageData = tempCtx.getImageData(0, 0, imgWidth, imgHeight);
        const data = imageData.data;

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

            // Apply Color Cast (simulates the filter's tint)
            if (colorCastAmount > 0) {
                r = r * (1 - colorCastAmount) + parsedCastR * colorCastAmount;
                g = g * (1 - colorCastAmount) + parsedCastG * colorCastAmount;
                b = b * (1 - colorCastAmount) + parsedCastB * colorCastAmount;
            }
            
            // Apply Desaturation (simulates long exposure effect, e.g., on water/sky)
            if (desaturation > 0) {
                // Calculate luminance based on (potentially) color-casted pixel
                const gray = 0.299 * r + 0.587 * g + 0.114 * b; 
                r = r * (1 - desaturation) + gray * desaturation;
                g = g * (1 - desaturation) + gray * desaturation;
                b = b * (1 - desaturation) + gray * desaturation;
            }
            
            data[i] = Math.round(Math.max(0, Math.min(255, r)));
            data[i + 1] = Math.round(Math.max(0, Math.min(255, g)));
            data[i + 2] = Math.round(Math.max(0, Math.min(255, b)));
        }
        tempCtx.putImageData(imageData, 0, 0); // Modified image is now on tempCanvas
    }
    // If no colorCastAmount and no desaturation, tempCanvas still correctly holds the original image.

    // 3. Apply Blur (simulates motion blur from long exposure)
    // Draw from tempCanvas to the main canvas, applying blur in the process.
    if (blurRadius > 0) {
        ctx.filter = `blur(${blurRadius}px)`;
        ctx.drawImage(tempCanvas, 0, 0, imgWidth, imgHeight); 
        ctx.filter = 'none'; // Reset filter on the main canvas context
    } else {
        // No blur, just copy the (potentially modified) image from tempCanvas to the main canvas
        ctx.drawImage(tempCanvas, 0, 0, imgWidth, imgHeight);
    }
    
    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 Lee Big Stopper 10-Stop ND Filter Effect Tool allows users to simulate the effects of a 10-stop neutral density filter on images. This tool can apply various effects, including image blurring to mimic long exposure photography, color casting to introduce a specific tint, and desaturation to create a softer, more muted color palette. It is particularly useful for photographers and designers looking to enhance landscape photos, especially those featuring water or skies, by giving them a dreamy, smooth appearance that is characteristic of long exposure shots. With adjustable parameters for blur intensity, color tint, and desaturation level, users can create custom effects tailored to their artistic vision.

Leave a Reply

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

Other Image Tools:

Image Minolta X-700 Film Camera Render Effect Creator

Image ORWO UN54 Motion Picture Film Effect Applicator

Image Shen-Hao Large Format Filter Effect Tool

Image Impossible Project Polaroid Filter Effect Tool

Photo Foma Retropan 320 Film Filter Effect Tool

Image Fuji QuickSnap Disposable Filter Effect Application

Image 220 Film Format Filter Effect

Image Black and White with Green #61 Filter Effect Tool

Image 35mm Panoramic Camera Filter Effect Tool

Image Hitech Firecrest ND Filter Effect Formatter

Photo Rodenstock Digital Vario ND Filter Effect Tool

Image Leica Yellow Filter Effect Application

Image Argus C3 Vintage Camera Filter Effect

Image ORWO NP22 Film Filter Effect Application

Image Wratten #25 Red Filter Effect Tool

Image Helios 44-2 Swirly Bokeh Effect Filter

Image Fujifilm ETERNA Motion Picture Film Effect Applicator

Image Fujifilm FP-100C Instant Film Effect Filter

Image Canon AE-1 Film Camera Render Effect

Photo B+W Dark Red #29 Filter Effect Application

Image Toy Camera Effect Enhancer

Photo Graflex Speed Graphic Filter Effect Tool

Image Konica Hexar AF Filter Effect Application

Image Ricoh GR Film Camera Filter Effect Application

Image Kodak Disposable Camera Filter Effect

Image Hoya Pro ND Filter Effect Application

Image Wratten #12 Yellow Filter Effect Tool

Image AGFA APX 100 Film Filter Effect Tool

Image Singh-Ray Vari-ND Filter Effect Application

Image Rollei RPX 25 Film Filter Effect Tool

Image 35mm Half-frame Camera Filter Effect

Image Kodak Vision3 250D Motion Picture Film Effect Filter

Image 120 Film Format Filter Effect

Image Lens Whacking Filter Effect Tool

Image Black and White Red Filter Effect Tool

Image Lee Medium Stopper 6-Stop ND Filter Effect Tool

See All →