Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

generator-fake

terror-machine584MIT2.0.4

Generator untuk membuat gambar fake story dan fake tweet dengan dukungan emoji.

canvas, image-generator, tweet, story, instagram, twitter

readme

generator-fake

Sebuah package Node.js untuk membuat gambar secara dinamis menggunakan Node Canvas.

Fitur

  • Generate Quotes dengan custom fontSize, maxWidth. (tidak support emoji. (sengaja))
  • Generate meme dengan custom fontSize, customPadding, custom square/normal size.
  • Generate fake chat iphone. simple saja.
  • Generate fake story dengan foto profil, username, dan caption.
  • Generate fake tweet dengan avatar, nama, username, status verified, dan teks.
  • Dukungan penuh untuk emoji (akan dirender sebagai gambar).
  • Penyesuaian ukuran font otomatis pada story.
  • Latar belakang dan warna kustom untuk tweet.

Instalasi

npm install generator-fake

Penggunaan

Generate Fake Story

const { generateFakeStory } = require('generator-fake');
const fs = require('fs');

async function createStory() {
  try {
    // Buffer gambar profil bisa didapat dari fs.readFile, fetch url.
    const profilePicBuffer = await fs.readFile('./assets/fotobot.jpeg');
    const imageBuffer = await generateFakeStory({
      username: 'kamu.Crot??',
      caption: 'ngetes aja dulu ya ga?? 🚀✨',
      profilePicBuffer: profilePicBuffer
    });
    await fs.writeFile('./fake_story.png', imageBuffer);
    console.log('Fake story berhasil dibuat!');
  } catch (error) {
    console.error('Gagal membuat story:', error);
  }
}

createStory();

Generate Fake Tweet

const { generateFakeTweet } = require('generator-fake');
const fs = require('fs');

async function createTweet() {
  try {
    const imageBuffer = await generateFakeTweet({
      user: {
        displayName: "kamu crot",
        username: "kamu_crot"
      },
      comment: "ngetes aja dulu ya ga?? 🚀✨",
      avatarUrl: './assets/fotobot.jpeg', // Bisa juga path lokal atau URL atau buffer
      verified: true,
      backgroundColor: '#15202b'
    });
    await fs.writeFile('./fake_tweet.png', imageBuffer);
    console.log('Fake tweet berhasil dibuat!');
  } catch (error) {
    console.error('Gagal membuat tweet:', error);
  }
}

createTweet();

Generate Fake Chat Iphone / IQC

const { generateFakeChatIphone } = require('generator-fake');
const fs = require('fs');

async function createFakeChat() {
  try {
    const quoteOptions = {
      text: "Test Buat Iphone Fake Chat 🤔🤔",
      chatTime: "21:55",
      statusBarTime: "21:57"
    };
    const quoteBuffer = await generateFakeChatIphone(quoteOptions);
    if (quoteBuffer) {
      await fs.writeFile('hasil.png', quoteBuffer);
      console.log('Fake Chat Iphone berhasil dibuat!');
    }

  } catch (error) {
    console.error("Terjadi kesalahan saat membuat gambar:", error);
  }
}

createTweet();

Generate Meme

const { generateMeme } = require('generator-fake');
const fs = require('fs');

(async () => {
  // original + custom fontSize + padding
  const path = './susu.jpg';
  const gen1 = await generateMeme(path, '🤬 Top 🤬 Meme 🤬', '🤬 Bot 🤬 Meme 🤬', { 
    fontSize: 65,
    topPadding: 80,
    bottomPadding: 80,
  });
  fs.writeFileSync('genMeme-normal.png', gen1);

  // square + custom fontSize
  const path = './susu.jpg';
  const gen2 = await generateMeme(path, '🤬 Ngapain 🤬 Kamu 🤬', '🤬', { 
    fontSize: 65,
    square: true,
  });
  fs.writeFileSync('genMeme-square.png', gen2);
})();

Generate Quote

const fs = require("fs");
const { generateQuote } = require('generator-fake');

(async () => {
  const path = './susu.jpg';
  const buffer = await generateQuote(
    path, // gambar background
    "Sekali melangkah dilarang putar arah apalagi menyerah.", // teks quote
    {
      fontSize: 30,
      maxWidth: 300,  // opsional, lebar maksimal teks sebelum dipindah baris
    }
  );
  fs.writeFileSync("quotes.png", buffer);
})();