stelluna-image-converter
stelluna.io/tr/gorsel-donustur aracının arkasındaki gerçek dönüştürme koduyla birebir aynısı — framework'ten bağımsız, küçük bir kütüphaneye ayrıştırılmış hali. JPG, PNG, WEBP, AVIF ve HEIC arasında tamamen ziyaretçinin tarayıcısında dönüştürür, hiçbir şey hiçbir yere yüklenmez. Kendi sitene ya da uygulamana ücretsiz ekle.
Kurulum
npm gerekmez — yukarıdaki index.js'i indirip doğrudan import et:
<script type="module">
import { convertImage } from "./index.js";
</script>
Kullanım
import { convertImage, validateFile, formatBytes } from "./index.js";
const file = document.querySelector('input[type="file"]').files[0];
const error = validateFile(file); // null, "file-too-large", ya da "unsupported-format"
if (!error) {
const { blob, width, height } = await convertImage(file, "webp"); // 'jpeg' | 'png' | 'webp' | 'avif'
console.log(`Converted to ${formatBytes(blob.size)}, ${width}x${height}`);
const a = document.createElement("a");
a.href = URL.createObjectURL(blob);
a.download = "converted.webp";
a.click();
}
HEIC/HEIF girdisi
Tarayıcılar HEIC'i doğal olarak açamaz, bu yüzden bir HEIC/HEIF dosyasını dönüştürmek isteğe bağlı heic2any bağımlılığını gerektirir (MIT lisanslı). Hiç HEIC dosyası vermeyeceksen kurmana gerek yok — sadece bir tane geldiğinde dinamik olarak import edilir:
npm install heic2any
API
| Export | İmza | Açıklama |
|---|---|---|
convertImage | (file, targetFormat) => Promise<{blob, width, height}> | Bir File/Blob'u hedef formata dönüştürür |
validateFile | (file, opts?) => string | null | Hata kodu döner, geçerliyse null |
canEncode | (format) => Promise<boolean> | Mevcut tarayıcının o formatı kodlayıp kodlayamadığı |
isHeic | (file) => boolean | MIME tipi ya da uzantıya göre HEIC/HEIF tespiti |
detectSourceLabel | (file) => string | "HEIC", "PNG" gibi kısa bir etiket |
formatBytes | (bytes) => string | örn. "1.4 MB" |
TARGET_FORMATS | string[] | ['jpeg','png','webp','avif'] |
İndirilende neler var
index.js— kütüphanenin kendisi, ~150 satır, tamamen açıklamalıexample.html— çalışan bir demo, tarayıcıda doğrudan aç, sunucu gerekmezREADME.md— tam kullanım dokümantasyonuLICENSE— MIT
Lisans
MIT — kişisel ya da ticari projelerinde kullan, değiştir, yayınla; atıf zorunlu değil (ama her zaman memnuniyetle karşılanır).