Kod ve veri
CSV hücreleri, görsel pikselleri ve baytları: tekrarlanabilir deney
İndirilebilir CSV ve görsellerle küçük KitForma deneyini tekrarla. Gerçek çıktıları, tam bayt sayılarını, kaynak kodunu ve örneklemin sınırlarını incele.

Üç günlük kontrol, indirilebilir bir deney
8 Ekim 2026’da yeni sentetik dosyalar üretip KitForma’nın gerçek CSV ayırıcı ve görsel işleme motorlarını çalıştırdık. Amacımız bilinen hücrelerin korunmasını, sığdırma-kırpma-esnetme farkını ve piksel boyutları değişmeden JPEG baytlarının değişmesini gözlemekti. Bu, kanıtları incelenebilen küçük bir KitForma denemesidir; bağımsız araç sıralaması veya temsili performans araştırması değildir.
CSV örneklemi toplam sekiz veri kaydı içeren dört geçerli dosya ve bir bozuk dosyadan oluşur. Görseller bir 2400 × 1600 geometrik girdi ile 1200 × 800 boyutlarında düz şekiller ve sabit tohumlu doku içerir. ZIP dosyasında girdiler, gerçek çıktılar, elle yazılmış beklenen hücre dizileri, kaynak kodu, tam bayt sayıları, dosya özetleri ve deney betiği bulunur.
Download the complete lab: inputs, outputs, source and README (ZIP) ↗Measured results, runtime and SHA-256 file hashes (JSON) ↗Measured result rows (CSV) ↗
CSV: satır sayısından önce hücre değerlerini karşılaştır
Dört geçerli örnek noktalı virgülden virgüle, virgülden sekmeye, sekmeden noktalı virgüle dönüşümü ve başında BOM bulunan UTF-8 metni kapsar. Tırnak içindeki ayırıcılar, çift tırnaklar, hücre içi LF ve CRLF satır sonları, boş hücreler, kenar boşlukları ve 007 gibi kodlar denenir. Her dosyada bir başlık, iki veri kaydı ve her kayıtta üç hücre vardır.
Dört gerçek çıktı elle yazılmış beklenen metinle eşleşti; başlıklar dahil 36 hücrenin tamamı beklenen metin dizileriyle aynıydı. Kapanmayan tırnak reddedildi. Aynı girdilerde düz bul-değiştir işlemi dört örneğin üçünde hücreleri değiştirdi; boşluk ve boş hücre örneğinde değerleri tesadüfen korudu. Bir dosyada çalışması, tırnaklı başka bir dosya için yeterli kanıt değildir.
İlk örnekte Vase; green içindeki noktalı virgül adın parçasıdır ve dönüşümden sonra korunur. Pack, carefully ise virgülle ayrılan çıktıda tırnak gerektirir. 007 bu dönüşümde metin olarak kalır; deney, elektronik tablonun sonraki tür tahminini ölçmez. Alıcı uygulama izin veriyorsa kimlik sütunlarını metin olarak içe aktar.
Noktalı virgüllü girdi:
name;code;note
"Vase; green";007;"Pack, carefully"
Virgüllü gerçek çıktı:
name,code,note
Vase; green,007,"Pack, carefully"CSV sample: semicolon input ↗CSV sample: actual comma output ↗RFC 4180: CSV quoting and record structure ↗
Boyutlandırma: aynı sınırlar farklı şekiller üretebilir
Yeni kaynak 2400 × 1600, yani 3:2 oranında bir dikdörtgendir; 800 piksel çaplı daire ve 400 piksellik kenar şeritleri içerir. Oran korunarak 900 × 900 sınırlarına sığdırıldığında çıktı 900 × 600 oldu ve kaynak bütünüyle korundu. Oran kilidi açılınca 900 × 900 çıktı oluştu ve daire ovalleşti.
Kare için önce Sol 400, Üst 0, Genişlik 1600, Yükseklik 1600 kaynak alanını kırptık; sonra 900 × 900’e boyutlandırdık. Kenarlar kayboldu, daire yuvarlak kaldı. Kırpma ayrı işlemdir: Boyutlandır aracı tek başına otomatik kırpma veya dolgu eklemez.
Kaydedilen PNG’leri açarak boyutları doğruladık ve tam turkuaz renkteki piksellerin sınır kutusunu ölçtük. Sığdırma 298 × 298, kırpma 448 × 448, esnetme 300 × 448 verdi. Yumuşatılmış kenar pikselleri sayılmadığı için bunlar matematiksel çap değil iç renk ölçüleridir. Betik geometrik beklentiye göre iki piksel tolerans kullanır.
İşlem Açılan boyut Bayt
Oranı koruyup sığdır 900 × 600 10.372
Kırp, sonra boyutlandır 900 × 900 16.612
Oranı açıp esnet 900 × 900 14.297Resize input: new 2400 × 1600 geometry PNG ↗Resize output: fit, 900 × 600 PNG ↗Resize output: crop then resize, 900 × 900 PNG ↗Resize output: stretch, 900 × 900 PNG ↗MDN: drawImage source rectangles and scaling ↗
Sıkıştırma: aynı pikseller aynı dosya boyutu demek değildir
İki 1200 × 800 PNG’nin her birini bağımsız olarak 40, 60, 80 ve 95 kalite ayarlarıyla JPEG’e çevirdik. Hedef dosya boyutu veya yeniden boyutlandırma kullanılmadı. Sekiz JPEG’in tamamı açıldığında 1200 × 800 çıktı. Kalite sayısı kodlayıcıya verilen ayardır; ölçülmüş görsel doğruluk yüzdesi değildir.
Düz şekilli PNG 15.877 bayttı. Kalite 95 JPEG çıktısı 18.334 bayt, yani bu PNG’den %15,48 daha büyüktü. Kalite 80’de 13.209 bayt oldu. Dokulu PNG 1.506.669 bayttı; JPEG çıktıları 92.894–515.771 bayt aralığındaydı. Bu iki yapay örnek, yalnız biçim ve kalite seçerek başka bir görselin kazancını tahmin edemeyeceğimizi gösterir.
1200 × 800 piksel korunurken kesin olarak 100.000 baytın altında kalmak gerekseydi, denenen dört doku çıktısından yalnız kalite 40 iki sayısal koşulu karşılardı. Bu varsayımsal eşiktir; gerçek site kuralı değildir. Sığan en yüksek kaliteyi aramadık ve görsel kalite puanı hesaplamadık. Bir çıktıyı seçmeden önce tam boyutta açıp ince siyah-beyaz kenarları karşılaştır.
Kalite Düz şekiller JPEG Dokulu JPEG
40 10.185 bayt 92.894 bayt
60 11.158 bayt 148.323 bayt
80 13.209 bayt 267.600 bayt
95 18.334 bayt 515.771 bayt
PNG: düz 15.877 bayt; doku 1.506.669 bayt.
Tüm girdiler ve bu çıktılar: 1200 × 800 piksel.
Compression input: flat shapes PNG ↗Compression output: flat shapes, JPEG quality 95 ↗Compression input: seeded texture PNG ↗Compression output: texture, JPEG quality 40 ↗Compression output: texture, JPEG quality 80 ↗MDN: Canvas export formats and quality ↗
Ölçümü tekrarla veya dosyaları araçlarda dene
Deneyi tekrarlamak için ZIP’i indir, boş bir klasöre aç ve Node.js 24 veya üstünü kur. O klasörde aşağıdaki komutları çalıştır. npm install tek tanımlı bağımlılık olan @napi-rs/canvas 1.0.9’u internetten indirir. Deney dosyaları daha sonra veri yüklemeden veya bir hizmet çağırmadan yerel olarak üretilir. Çıktılar rerun klasörüne yazılır; yayımlanan ölçümler karşılaştırma için korunur.
Yayımlanan çalıştırma Windows x64 üzerinde Node.js v24.19.0, @napi-rs/canvas 1.0.9 ve esbuild 0.28.1 ile hazırlanmış gerçek motor kopyasını kullandı. Kaynak dosyaların SHA-256 özetleri engine-sources.json içindedir. Yerel Canvas uyarlaması gerçek processImage fonksiyonuna çözme, çizme ve kodlama sağlar. Tarayıcı arayüzünü çalıştırmaz; Chrome, Safari veya başka tarayıcıların aynı baytları üreteceğini kanıtlamaz.
KitForma’da denemek için noktalı virgüllü dosyayı CSV ayırıcı dönüştürücüde, geometrik PNG’yi Boyutlandır’da, 1200 × 800 PNG’lerden birini Sıkıştır’da aç. Belirtilen ayarları seç, gerçek çıktını indir ve hücreleri, boyutları ve baytları ayrı ayrı karşılaştır. Tarayıcının bayt sonucu farklıysa bu tabloyu kopyalamak yerine kendi sonucunu kaydet.
npm install
node run-lab.mjs
İncele: rerun/results.json
Karşılaştır: rerun/results.csvDownload the complete lab: inputs, outputs, source and README (ZIP) ↗Read the methodology and reproduction commands ↗Inspect the reproducible experiment script ↗
Sonucu örneklemin sınırları içinde kullan
Dört küçük geçerli CSV ve bir reddedilen girdi bütün CSV lehçelerini, kodlamaları, elektronik tabloları veya büyük dosya iş yüklerini doğrulamaz. İki yapay görsel; fotoğrafları, ekran görüntülerini, saydam çizimleri veya üretim koleksiyonunu temsil etmez. EXIF yönü, animasyon, HEIC, renk yönetimi, erişilebilirlik, OCR, yükleme kabulü ve hız denenmedi.
Tekrarlanabilir yöntem şudur: CSV değişiminden sonra hücreleri ve kimlik metinlerini karşılaştır. Boyutlandırmadan sonra kaydedilen en-boy değerlerini ve şekli incele. Sıkıştırmadan sonra kabul edilen biçimi, tam bayt sayısını, pikselleri ve görünür ayrıntıyı kontrol et. Orijinali sakla; dosyanın hazır olup olmadığına alıcı uygulamanın gerçek koşullarıyla karar ver.
KITFORMA
Hemen uygula
Rehberleri ücretsiz ve hesapsız okuyabilirsin. İlgili araçlar varsa hesap veya Pro koşullarını açıklar.
İleri okuma
Kaynaklar son kontrol edildi:
KitForma bu rehberi yapay zekâ desteğiyle hazırladı. Örnekler açıklama amacı taşır; gerçek satış, arama hacmi veya başarı ölçümü değildir. Bağlantılı kaynakları ve kendi dosyandaki sonucu kontrol et.
- Download the complete lab: inputs, outputs, source and README (ZIP)
- Measured results, runtime and SHA-256 file hashes (JSON)
- Measured result rows (CSV)
- Read the methodology and reproduction commands
- Inspect the reproducible experiment script
- CSV sample: semicolon input
- CSV sample: actual comma output
- Resize input: new 2400 × 1600 geometry PNG
- Resize output: fit, 900 × 600 PNG
- Resize output: crop then resize, 900 × 900 PNG
- Resize output: stretch, 900 × 900 PNG
- Compression input: flat shapes PNG
- Compression input: seeded texture PNG
- Compression output: flat shapes, JPEG quality 95
- Compression output: texture, JPEG quality 40
- Compression output: texture, JPEG quality 80
- RFC 4180: CSV quoting and record structure
- MDN: Canvas export formats and quality
- MDN: drawImage source rectangles and scaling
Bu rehberi nasıl kullanmalı?
KitForma tarafından yayımlanır ve güncellenir. Kaynak bağlantıları ilgili biçim ve tanımları açıklar. Örnek girdiler, kendi dosyaların için hız, kalite veya uyumluluk garantisi vermez. Aracın belirtilen sınırlarını oku ve indirdiğin sonucu kontrol et.
Sorular ve deneyimler
İşe yarayan bir yöntemi paylaş, soru sor veya düzeltme öner. Şifre, özel dosya ya da kişisel belge bilgilerini yazma.
Yorumlar yükleniyor…