Please bookmark this page to avoid losing your image 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, text = "ВЛЮБЛЁННЫЙ МАКС", heartCount = 30, intensity = 1.0) {
    // Parse parameters
    const parsedHeartCount = parseInt(heartCount, 10) || 30;
    const parsedIntensity = parseFloat(intensity) || 1.0;
    const finalIntensity = Math.max(0, Math.min(parsedIntensity, 5)); // cap intensity between 0 and 5

    // Initialize 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');

    // "Безумный Макс" (Mad Max) post-apocalyptic cinematic filter: high contrast, sepia/orange tones
    const contrast = 1 + (0.4 * finalIntensity);
    const sepia = 0.6 * finalIntensity;
    const saturate = 1 + (0.8 * finalIntensity);
    ctx.filter = `contrast(${contrast}) sepia(${sepia}) saturate(${saturate})`;
    
    // Draw the original image with the filter
    ctx.drawImage(originalImg, 0, 0, width, height);

    // Reset filter for drawing overlays
    ctx.filter = "none";

    // Add a romantic pinkish/magenta tint
    ctx.fillStyle = `rgba(255, 20, 147, ${0.15 * finalIntensity})`;
    ctx.fillRect(0, 0, width, height);

    // Simple pseudo-random number generator to keep heart placement consistent across re-renders
    function mulberry32(a) {
        return function() {
            var t = a += 0x6D2B79F5;
            t = Math.imul(t ^ t >>> 15, t | 1);
            t ^= t + Math.imul(t ^ t >>> 7, t | 61);
            return ((t ^ t >>> 14) >>> 0) / 4294967296;
        }
    }
    // Seed PRNG based on image dimensions and heart count
    const random = mulberry32((width * height + parsedHeartCount) >>> 0);

    // Draw floating love elements ("Влюблённый" aspect)
    if (parsedHeartCount > 0) {
        const emojis = ["❤️", "💖", "💘", "😍", "🔥", "💋"];
        
        for (let i = 0; i < parsedHeartCount; i++) {
            const x = random() * width;
            const y = random() * height * 0.85; // Keep mostly above the text
            const size = (random() * 0.1 + 0.05) * Math.min(width, height); // 5% to 15% of min dimension
            const angle = (random() - 0.5) * Math.PI / 2; // Rotate between -45 and +45 degrees

            ctx.save();
            ctx.translate(x, y);
            ctx.rotate(angle);
            ctx.font = `${Math.floor(size)}px sans-serif`;
            ctx.textAlign = "center";
            ctx.textBaseline = "middle";
            
            // Add a soft glowing effect
            ctx.shadowColor = "deeppink";
            ctx.shadowBlur = size * 0.3;
            
            const emoji = emojis[Math.floor(random() * emojis.length)];
            ctx.fillText(emoji, 0, 0);
            ctx.restore();
        }
    }

    // Draw the main meme/poster text
    if (text) {
        let fontSize = Math.max(20, height * 0.12);
        ctx.font = `bold ${fontSize}px Impact, "Arial Black", sans-serif`;
        ctx.textAlign = "center";
        ctx.textBaseline = "bottom";

        // Scale text down if it's too wide for the canvas
        const maxTextWidth = width * 0.95;
        let textWidth = ctx.measureText(text).width;
        if (textWidth > maxTextWidth) {
            fontSize = fontSize * (maxTextWidth / textWidth);
            ctx.font = `bold ${fontSize}px Impact, "Arial Black", sans-serif`;
        }

        const x = width / 2;
        const y = height * 0.96;

        // Heavy black outline for movie poster aesthetic
        ctx.lineWidth = fontSize * 0.12;
        ctx.lineJoin = "round";
        ctx.strokeStyle = "black";
        ctx.strokeText(text, x, y);

        // Bright pink fill for the "Love" theme
        ctx.fillStyle = "#FF1493"; // DeepPink
        ctx.fillText(text, x, y);
        
        // Inner white/pinkish highlight
        ctx.lineWidth = fontSize * 0.03;
        ctx.strokeStyle = "#FFC0CB"; // Pink
        ctx.strokeText(text, x, y);
    }

    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

This tool applies a unique cinematic and romantic aesthetic to your images, combining high-contrast, sepia-toned post-apocalyptic filters with soft pink tints and floating heart emojis. It allows users to overlay custom text with a bold, movie-poster style font and adjust the intensity of the effects and the number of decorative elements. It is ideal for creating humorous memes, themed social media posts, or stylized digital art that blends gritty cinematic vibes with romantic elements.

Leave a Reply

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