Please bookmark this page to avoid losing your image tool!

Photo Lomography Berlin Kino 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.
function processImage(originalImg, contrast = 1.8, grainAmount = 25, vignetteStrength = 0.8, vignetteSoftness = 0.6) {
    const canvas = document.createElement('canvas');
    const ctx = canvas.getContext('2d', { willReadFrequently: true }); // Optimization hint

    // Use naturalWidth/Height if available, otherwise fallback to width/height
    const imgWidth = originalImg.naturalWidth || originalImg.width;
    const imgHeight = originalImg.naturalHeight || originalImg.height;

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

    // Draw the original image onto the canvas
    ctx.drawImage(originalImg, 0, 0, canvas.width, canvas.height);

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

    const centerX = width / 2;
    const centerY = height / 2;
    // Max distance is from center to a corner
    const maxDist = Math.sqrt(centerX * centerX + centerY * centerY);

    // Vignette exponent calculation:
    // vignetteSoftness (0.0 to 1.0): 0.0 for hard edge, 1.0 for very soft/wide edge.
    // A higher exponent creates a harder edge (darkness concentrated at the very edges).
    // A lower exponent creates a softer edge (darkness spreads more towards the center).
    // Map vignetteSoftness: 0 -> exponent=2.0 (hard), 1 -> exponent=0.2 (very soft)
    const vignetteExponent = Math.max(0.1, 2.0 - (vignetteSoftness * 1.8));

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

        // 1. Convert to Grayscale (Luminosity method)
        // Standard weights for luminance
        let gray = 0.299 * r + 0.587 * g + 0.114 * b;

        // 2. Apply Contrast
        // Formula: NewValue = factor * (OldValue - 128) + 128
        gray = (contrast * (gray - 128)) + 128;

        // Clamp gray value to [0, 255]
        gray = Math.max(0, Math.min(255, gray));

        // 3. Apply Film Grain
        // Generate random noise between -grainAmount and +grainAmount
        const grain = (Math.random() * 2 - 1) * grainAmount;
        let finalVal = gray + grain;

        // Clamp final B&W value to [0, 255]
        finalVal = Math.max(0, Math.min(255, finalVal));

        // Set R, G, B to the processed monochrome value
        r = finalVal;
        g = finalVal;
        b = finalVal;

        // 4. Apply Vignette
        // Calculate pixel coordinates
        const x = (i / 4) % width;
        const y = Math.floor((i / 4) / width);

        // Calculate distance from center
        const dx = x - centerX;
        const dy = y - centerY;
        const dist = Math.sqrt(dx * dx + dy * dy);

        // Normalize distance (0 at center, 1 at maxDist)
        const normalizedDist = Math.min(1, dist / maxDist); // Clamp to 1 for points outside inscribed circle

        // Calculate vignette factor (1 at center, decreasing towards edges)
        // Strength controls max darkness, exponent controls falloff shape
        let vignetteFactor = 1.0 - vignetteStrength * Math.pow(normalizedDist, vignetteExponent);
        vignetteFactor = Math.max(0, Math.min(1, vignetteFactor)); // Clamp factor [0, 1]

        // Apply vignette by darkening the pixel
        data[i]     = r * vignetteFactor;
        data[i + 1] = g * vignetteFactor;
        data[i + 2] = b * vignetteFactor;
        // Alpha (data[i + 3]) remains unchanged
    }

    // Put the modified image data back onto the canvas
    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 Photo Lomography Berlin Kino Filter Effect Tool allows users to apply a vintage film filter effect to their images. By adjusting parameters such as contrast, grain amount, and the strength and softness of a vignette, this tool enhances photographs to achieve a nostalgic look reminiscent of classic lomography. This can be particularly useful for photographers, graphic designers, and social media enthusiasts who wish to create striking visuals with a retro aesthetic.

Leave a Reply

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

Other Image Tools:

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

Image Kodak Portra 400 Film Filter Effect

Image Fujifilm Superia Filter Effect Tool

See All →