Please bookmark this page to avoid losing your image tool!

Image Cinestill 50D Filter Effect Application

(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,
    _contrast = 1.2,
    _saturation = 0.9,
    _overallRedTint = 0.98,
    _overallGreenTint = 1.01,
    _overallBlueTint = 1.04,
    _highlightRedBoost = 1.07,
    _highlightGreenBoost = 1.05,
    _highlightBlueReduction = 0.96,
    _shadowGreenAdd = 3,
    _shadowBlueAdd = 5,
    _grainAmount = 5
) {
    // Ensure parameters are numbers, provide defaults if parsing fails
    const contrast = Number(_contrast) || 1.2;
    const saturation = Number(_saturation) || 0.9;
    const overallRedTint = Number(_overallRedTint) || 0.98;
    const overallGreenTint = Number(_overallGreenTint) || 1.01;
    const overallBlueTint = Number(_overallBlueTint) || 1.04;
    const highlightRedBoost = Number(_highlightRedBoost) || 1.07;
    const highlightGreenBoost = Number(_highlightGreenBoost) || 1.05;
    const highlightBlueReduction = Number(_highlightBlueReduction) || 0.96;
    const shadowGreenAdd = Number(_shadowGreenAdd) || 3;
    const shadowBlueAdd = Number(_shadowBlueAdd) || 5;
    const grainAmount = Number(_grainAmount) || 5;

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

    canvas.width = originalImg.naturalWidth || originalImg.width;
    canvas.height = originalImg.naturalHeight || originalImg.height;

    ctx.drawImage(originalImg, 0, 0, canvas.width, canvas.height);

    const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
    const data = imageData.data;

    const highlightThreshold = 170; // Pixels brighter than this are considered_highlights
    const shadowThreshold = 70;   // Pixels darker than this are considered shadows

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

        // 1. Overall Color Tint (emulating Cinestill 50D's daylight balance and character)
        // Cinestill 50D is daylight balanced, tends to be cool with good blues.
        r *= overallRedTint;
        g *= overallGreenTint;
        b *= overallBlueTint;

        // Clamp after initial tint
        r = Math.max(0, Math.min(255, r));
        g = Math.max(0, Math.min(255, g));
        b = Math.max(0, Math.min(255, b));

        // 2. Contrast Adjustment
        // Formula: NewValue = (OldValue - 128) * Contrast + 128
        r = (r - 128) * contrast + 128;
        g = (g - 128) * contrast + 128;
        b = (b - 128) * contrast + 128;

        // Clamp after contrast
        r = Math.max(0, Math.min(255, r));
        g = Math.max(0, Math.min(255, g));
        b = Math.max(0, Math.min(255, b));
        
        // 3. Saturation Adjustment
        // Formula: NewValue = Luminance + Saturation * (OldValue - Luminance)
        // Luminance calculation (standard weights)
        const lum = 0.299 * r + 0.587 * g + 0.114 * b;
        r = lum + saturation * (r - lum);
        g = lum + saturation * (g - lum);
        b = lum + saturation * (b - lum);

        // Clamp after saturation
        r = Math.max(0, Math.min(255, r));
        g = Math.max(0, Math.min(255, g));
        b = Math.max(0, Math.min(255, b));

        // 4. Selective Highlight and Shadow Adjustments
        const intensity = (r + g + b) / 3; // Simple average intensity

        if (intensity > highlightThreshold) { // Highlight adjustments for warmth
            r *= highlightRedBoost;
            g *= highlightGreenBoost; // Warms towards yellow/orange
            b *= highlightBlueReduction; // Reducing blue enhances warmth
        } else if (intensity < shadowThreshold) { // Shadow adjustments for cool/film-like tint
            g += shadowGreenAdd; // Adds slight green to shadows
            b += shadowBlueAdd;  // Adds slight blue to shadows
        }
        
        // Clamp after selective H/S adjustments
        r = Math.max(0, Math.min(255, r));
        g = Math.max(0, Math.min(255, g));
        b = Math.max(0, Math.min(255, b));

        // 5. Film Grain Simulation
        if (grainAmount > 0) {
            // Generate random noise value between -grainAmount and +grainAmount
            const grain = (Math.random() - 0.5) * grainAmount * 2;
            r += grain;
            g += grain;
            b += grain;
        }

        // Final clamp for all channels
        data[i] = Math.max(0, Math.min(255, r));
        data[i + 1] = Math.max(0, Math.min(255, g));
        data[i + 2] = Math.max(0, Math.min(255, b));
        // Alpha channel (data[i + 3]) remains unchanged
    }

    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 Cinestill 50D Filter Effect Application is an online tool designed to enhance images by applying a vintage film effect reminiscent of Cinestill 50D. This tool adjusts the contrast, saturation, and color tints of images to emulate the unique characteristics of this film type. Users can apply selective highlight and shadow adjustments to add warmth to bright areas and cool tones to darker regions, while also simulating a film grain effect. This tool is ideal for photographers, graphic designers, and anyone looking to give their digital images a nostalgic, analog look, suitable for both creative projects and personal use.

Leave a Reply

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

Other Image Tools:

Image Kodachrome 64 Filter Effect Tool

Photo Lomography Berlin Kino Filter Effect Tool

Image Fujifilm Neopan Filter Effect Tool

Image Polaroid Instant Film Filter Effect Tool

Image Holga Camera Filter Effect Tool

Image Fisheye Lens Distortion Filter Effect Tool

Image Kodak Gold 200 Film Filter Effect Tool

Photo Macro Filter Effect Tool

Image Neutral Density Filter Effect Tool

Image Green Filter Black And White Effect Tool

Image Large Format Film Filter Effect Creator

Image Pinhole Camera Filter Effect Tool

Image Warming Filter Effect Tool

Image Fujifilm Pro 400H Filter Effect Application

Image Diffusion Filter Effect Tool

Image Push-Processed Film Filter Effect Tool

Image Color Temperature Orange Filter Effect Tool

Image Kodak Ektar 100 Film Filter Effect

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

See All →