Sylvatica.

Back to Library

Ihancer

js 1/27/2026
13
const axios = require("axios");
const FormData = require("form-data");

async function ihancer(url, method = 1, size = "low") {
  const _size = ["low", "medium", "high"];

  if (!url) throw new Error("URL parameter is required");
  if (method < 1 || method > 4) method = 1;
  if (!_size.includes(size)) size = "low";

  try {
    const imageResponse = await axios.get(url, { responseType: 'arraybuffer' });
    const buffer = Buffer.from(imageResponse.data);

    const form = new FormData();
    form.append("method", method.toString());
    form.append("is_pro_version", "false");
    form.append("is_enhancing_more", "false");
    form.append("max_image_size", size);
    form.append("file", buffer, `image_${Date.now()}.jpg`);

    const { data } = await axios.post("https://ihancer.com/api/enhance", form, {
      headers: {
        ...form.getHeaders(),
        "accept-encoding": "gzip",
        "host": "ihancer.com",
        "user-agent": "Dart/3.5 (dart:io)",
      },
      responseType: "arraybuffer",
    });

    return data;
  } catch (error) {
    console.error("Ihancer Error:", error.message);
    throw new Error("Gagal memproses gambar. Pastikan URL valid atau server sedang sibuk.");
  }
}

module.exports = { ihancer };