Please bookmark this page to avoid losing your image tool!

MoreTestosteroneCityNight Image Effect Generator

(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, noiseAmount = 25, bloomIntensity = 0.8, vignetteStrength = 0.7, colorStyle = "cyberpunk") {
    // Create the main output canvas
    const canvas = document.createElement('canvas');
    const width = originalImg.width;
    const height = originalImg.height;
    canvas.width = width;
    canvas.height = height;
    const ctx = canvas.getContext('2d');

    // 1. Draw base image
    ctx.drawImage(originalImg, 0, 0);

    // 2. Pixel manipulation (Color Grading, Contrast, Noise)
    // This gives the signature gritty, high-contrast, moody aesthetic requested
    const imageData = ctx.getImageData(0, 0, width, height);
    const data = imageData.data;

    // Ensure parameters are correctly typed
    noiseAmount = Number(noiseAmount);
    bloomIntensity = Number(bloomIntensity);
    vignetteStrength = Number(vignetteStrength);

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

        // Gamma adjustment (Darken midtones for moody look)
        const gamma = 1.15;
        r = 255 * Math.pow(r / 255, gamma);
        g = 255 * Math.pow(g / 255, gamma);
        b = 255 * Math.pow(b / 255, gamma);

        // Increase Contrast aggressively
        const contrast = 1.35;
        r = ((r / 255 - 0.5) * contrast + 0.5) * 255;
        g = ((g / 255 - 0.5) * contrast + 0.5) * 255;
        b = ((b / 255 - 0.5) * contrast + 0.5) * 255;

        // Calculate perceived luminosity
        let lum = 0.299 * r + 0.587 * g + 0.114 * b;

        // Color Style Applications ("City Night" Neons)
        if (colorStyle === "cyberpunk") {
            // Cool deep shadows (blue/purple), Neon highlights (pink/cyan)
            b += (255 - lum) * 0.25;
            r -= (255 - lum) * 0.1;
            g -= (255 - lum) * 0.15;

            r += lum * 0.15;
            b += lum * 0.1;
            g -= lum * 0.05;
        } else if (colorStyle === "blade-runner") {
            // Heavy cinematic orange & teal
            if (lum < 128) { 
                b += (128 - lum) * 0.4;
                g += (128 - lum) * 0.2;
                r -= (128 - lum) * 0.3;
            } else { 
                r += (lum - 128) * 0.3;
                g += (lum - 128) * 0.1;
                b -= (lum - 128) * 0.4;
            }
        } else if (colorStyle === "gritty-neon") {
            // High contrast reds and blues
            g = g * 0.6;
            r = r * 1.2;
            b = b * 1.2;
        }

        // Add Film Grain / Noise for the "raw" feel
        if (noiseAmount > 0) {
            const noise = (Math.random() - 0.5) * 2 * noiseAmount;
            r += noise;
            g += noise;
            b += noise;
        }

        // Clamp values and set back to buffer
        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));
    }
    ctx.putImageData(imageData, 0, 0);

    // 3. Bloom Effect (creates the bright glowing city lights)
    if (bloomIntensity > 0) {
        // Downscale for better performance and broader bloom
        const scale = 0.25;
        const bloomCanvas = document.createElement('canvas');
        bloomCanvas.width = width * scale;
        bloomCanvas.height = height * scale;
        const bCtx = bloomCanvas.getContext('2d');

        bCtx.drawImage(canvas, 0, 0, bloomCanvas.width, bloomCanvas.height);

        const bData = bCtx.getImageData(0, 0, bloomCanvas.width, bloomCanvas.height);
        const bd = bData.data;
        for (let i = 0; i < bd.length; i += 4) {
            // Hard threshold - keep only extreme highlights, remove everything else
            let lum = 0.299 * bd[i] + 0.587 * bd[i + 1] + 0.114 * bd[i + 2];
            if (lum < 160) {
                bd[i] = 0;
                bd[i + 1] = 0;
                bd[i + 2] = 0;
            }
        }
        bCtx.putImageData(bData, 0, 0);

        // Apply blur to thresholded canvas
        const blurCanvas = document.createElement('canvas');
        blurCanvas.width = bloomCanvas.width;
        blurCanvas.height = bloomCanvas.height;
        const blurCtx = blurCanvas.getContext('2d');
        blurCtx.filter = 'blur(10px)'; 
        blurCtx.drawImage(bloomCanvas, 0, 0);

        // Composite the blurred glowing lights over the original canvas
        ctx.globalCompositeOperation = 'screen';
        ctx.globalAlpha = bloomIntensity;
        ctx.drawImage(blurCanvas, 0, 0, width, height);

        // Reset context operations
        ctx.globalCompositeOperation = 'source-over';
        ctx.globalAlpha = 1.0;
    }

    // 4. Cinema Vignette (Edge darkening)
    if (vignetteStrength > 0) {
        const gradient = ctx.createRadialGradient(
            width / 2, height / 2, 0, 
            width / 2, height / 2, Math.max(width, height) / 1.5
        );
        gradient.addColorStop(0, 'rgba(0,0,0,0)');
        gradient.addColorStop(0.4, 'rgba(0,0,0,0)');
        gradient.addColorStop(1, `rgba(0,0,0,${vignetteStrength})`);
        
        ctx.fillStyle = gradient;
        ctx.fillRect(0, 0, width, height);
    }

    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 MoreTestosteroneCityNight Image Effect Generator is a tool designed to apply cinematic, high-contrast aesthetics to your photos. It allows users to transform standard images into moody, urban-themed visuals using various color styles such as cyberpunk, blade-runner (orange and teal), and gritty neon. Key features include adjustable film grain for texture, a bloom effect to create glowing highlights, and vignette controls to draw focus to the center of the frame. This tool is ideal for digital artists, social media enthusiasts, and creators looking to give their photography a dramatic, futuristic, or cinematic night-time atmosphere.

Leave a Reply

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

Other Image Tools:

Photo To Atomic Blonde Logo Style Converter

Photo To Ouija Origin Of Evil Logo Style Converter

Particle Dust Image Effect Generator

Chromatic Aberration Image Effect Generator

Soft Focus Blur Image Effect Generator

Wii Menu Chirp Echo Image Effect Generator

Sunrise Bloom Image Effect Generator

Morning Mist Overlay Image Effect Generator

Dewdrop Refraction Image Effect Generator

Golden Hour Glow Image Effect Generator

Lights Out Movie Poster

Lights Out Sky Scream Roller Coaster Movie Poster Generator

Lights Out Sky Scream Roller Coaster Movie Poster Website Image

Lights Out Sky Scream Roller Coaster Movie Poster Image

Empty Texas State Driver License Generator

Editable Realistic State Driver License Photo Template Generator

Photo To Skype Incoming Call Video Converter for Mac

Photo To Skype Incoming Call Video Converter

Photo To Skype Incoming Call Background Converter

Photo To Video Trailer Creator

Cybernatural Conjuring Teaser Poster Generator

Unfriended Conjuring Movie Poster Image

Annabelle Comes Home Movie Poster

Annabelle Creation Movie Poster

Annabelle Movie Poster 2014

The Conjuring Last Rites Movie Poster

The Conjuring The Devil Made Me Do It Movie Poster

The Conjuring 2 Movie Poster

The Conjuring Movie Poster

Photo To Conjuring Title Card Sequence Converter

Image License Information Viewer

Image Moiré Effect Text Adder

Moiré Pattern Image Generator With Shapes and Decorative Elements

Video To Website Image Converter

Photo To AI Trailer Video Generator

Photo To AI Video Trailer Generator

See All →