LeanImg

Bir görüntü arka planını ücretsiz ve filigransız nasıl kaldırırım?

Tarayıcı sekmenizde IS-Net modelinin ne yaptığı, kesilen görüntünün neden her zaman daha büyük bir PNG olduğu ve o PNG'yi nasıl küçülteceğiniz hakkında ölçümlenmiş verilerle.

Her ücretsiz arka plan kaldırıcı aynı iki vaadi verir: filigransız ve kaydolma gerektirmeyen. Çoğu hala dosyanızı ister. Dosya bir sunucuya gönderilir, orada bir model çalışır ve bir saklama politikası bir saat veya bir gün içinde silinmeyi vaat eder. Bizimki bu şekilde çalışmıyor. Arka plan kaldırıcı, IS-Net modelini tarayıcı sekmenize yükler ve bunu kendi makinenizde çalıştırır, böylece resim asla bir HTTP isteğinin parçası olmaz.

Geri dönen her zaman bir alfa kanallı PNG'dir ve genellikle yüklediğiniz dosyadan daha büyüktür. Bu, insanları yanıltır. Şeffaflığın bir bedeli vardır ve PNG, bunu taşıyan tek yaygın olarak desteklenen formattır.

Görüntü bilgisayarımın dışına çıkıyor mu?

Hayır. Bu kod tabanında bir API yolu yok ve hiçbir sunucu eylemi yok, bu nedenle görüntünüzü kazara bile alabilecek bir uç nokta yok. Araç tarafından yapılan tek ağ trafiği, model ağırlıkları için aynı kökenli bir fetch'tir, bu da kendi alanımızda /ml-assets altında yer alır ve bunları yalnızca bir kez indirirsiniz. Bundan sonra tarayıcınız bunları önbelleğe alır. Dosyanız createImageBitmap ile okunur, modele pikseller olarak verilir ve indirene kadar veya sekmeyi kapatana kadar sekmede kalan bir Blob olarak geri yazılır. Daha sonra silinmek üzere sıraya alınacak bir şey yok çünkü hiçbir şey hiçbir yere ulaşmaz. Gizlilik sayfası bu nedenle kısadır.

IS-Net modeli aslında ne yapar?

IS-Net, DIS araştırması tarafından geliştirilen belirgin nesne segmentasyon ağıdır. Tüm kareyi okur ve her piksel için o pikselin resmin konusuna ait olma olasılığını tahmin eder. Bu tahmin, çıktı PNG'sinin alfa kanalı haline gelir. Bir insanın veya bir şampuan şişesinin ne olduğunu bilmez. Önem derecesini bilir. Bu nedenle, düz bir zemin üzerindeki tek bir konu temiz bir şekilde kesilirken, kalabalık bir sokaktaki bir grup insan genellikle kesilmez.

Çalışma zamanı ONNX Runtime Web ve motor WebGPU cihazını talep eder. WebGPU eksik olduğunda kütüphane kendi başına CPU'ya geri döner ve yine de tamamlanır, daha yavaş. Dosyalar birer birer çalışır. On dosya bırakın ve on çıkarım geçişi boyunca bekleyeceksiniz, bu nedenle bir grup tatil fotoğrafı bir kahve molasıdır.

Kesilen PNG, yüklediğim JPG'den neden daha büyük?

JPEG, hiçbir modda alfa kanalı taşımaz, bu nedenle bir kesim JPEG olarak kalamaz. Çıktının PNG olması gerekir, bu kayıpsızdır. İki şey bir anda olur. Çözünür pikseller tam olarak depolanır, sıkıştırma artefaktlarıyla birlikte ve her piksel daha önce sahip olmadığı bir alfa baytı kazanır. Fotoğrafik detayların kayıpsız depolanması pahalıdır. Ölçek olarak, test setimizdeki texture.jpg 3840x2160 boyutunda ve 538,6 KB ağırlığındayken, alpha.png 900x606 boyutunda şeffaflıkla 942,4 KB'dır. Bu, yaklaşık 1,75 kat daha fazla bayt ve yaklaşık on beşte bir piksel sayısıdır. Kimse görüntünüze bir şey eklemedi. Şimdi yalnızca PNG fiyatlarını ödüyorsunuz.

Kesilen PNG'yi nasıl daha küçük yapabilirim?

Görüntü sıkıştırıcısına gönderin ve iki PNG modundan birini seçin. Her ikisi de alfa kanalını koruyacaktır. "PNG sıkıştırma yok" oxipng'yi seviye 3'te çalıştırır, bu kayıpsızdır: aynı pikseller, daha az bayt. "PNG daha küçük dosya boyutu" imagequant'ı çalıştırır, bu görüntüyü bir palete indirger. İşte her birinin yukarıdaki 900x606 şeffaf PNG'ye alpha.png yaptığı.

Sıkıştırıcımızdaki her iki PNG modu, aynı şeffaf 900x606 dosyasında ölçülmüştür.
ModNe yaparSonuçDeğişim
Kaynak dosyaGerçek bir alfa kanalı olan 900x606 PNG942,4 KBtemel
PNG sıkıştırma yokoxipng seviye 3, tamamen kayıpsız383,9 KB-59%
PNG daha küçük dosya boyutuimagequant, palet azaltma98,3 KB-90%
Şeffaf bir PNG'nin palet modunda 942,4 KB'den 98,3 KB'ye düştüğünü gösteren sıkıştırıcı sonuç kartı
Şeffaf bir PNG'de palet modu: 942,4 KB'den 98,3 KB'ye, alfa intact.

Palet yolu önce gradyanları yer. Düz logolar ve paket çekimleri bunu iyi bir şekilde atlatır. Yumuşak bir gölge üzerindeki bir saç perdesi, bantlama sorununu gösterir, bu nedenle gönderimden önce sonucu tam boyutta kontrol edin. Sıkıştırma ayrıca her tür meta veriyi siler: EXIF, GPS, ICC profili ve gömülü küçük resim. Yönlendirme korunur.

Konu arkasında beyaz bir arka plan koyabilir mi?

Hayır. Kaldırıcı alfa yazar ve orada durur. Araçta hiçbir dolgu rengi ve hiçbir değiştirme resmi yoktur. Konunun arkasında beyaz istiyorsanız, bitmiş PNG'yi PNG'den JPG'ye gönderin. Alfa kanalı olmayan herhangi bir hedef format, şeffaflığı beyaz üzerine yerleştirir, bu nedenle JPEG ve PDF, ekstra bir adım olmadan beyaz bir arka plan sunar. Kesimi farklı bir piksel boyutunda istiyorsanız, ölçekleyici PNG'yi kayıpsız yazar, böylece alfa bu yolculuğu da atlatır. Kırpıcı da PNG için aynı şeyi yapar, bir seferde 10 MB'a kadar bir dosya.

Hangi dosyaları bırakabilirim ve kaç tane?

On dosya ve her grup için 50 MB. Seçici JPEG, PNG, WebP, AVIF, GIF, BMP ve ICO alır. SVG ve HEIC, model çalışması başlamadan önce reddedilir, çünkü Chrome her ikisini de çözemez: SVG, piksel içermeyen XML'dir ve HEIC, yalnızca Safari'nin işleyebildiği bir HEIF konteyneridir. Bir iPhone HEIC için, önce HEIC'den PNG'ye çalıştırın ve sonucu kaldırıcıya bırakın, ayrıca Windows'un o dosyayı neden açamadığını açıklayan içerik konteynerinin içindedir. Her çıktı, kaynak dosyanın temel adını .png uzantısıyla korur, böylece indirme klasörünüzde tanıyabilirsiniz ve birkaç sonuç aynı anda background-removed.zip olarak indirilir.

Kesimim neden tamamen boş döndü?

Belirgin bir konu olmayan bir görüntü tamamen şeffaf bir PNG döner ve boyut düşüşü tasarruf olarak bile okunabilir. Bunu kontrol ediyoruz, böylece yanlışlıkla boş bir şey göndermiyorsunuz. Her çalışmadan sonra motor, alfa kanalını 1024 px kenarına kadar örnekler ve alfa 64 veya üzerindeki pikselleri sayar. Çerçevenin %0,1'inden azı hayatta kalırsa, kart size hiçbir konu bulunmadığını bildirir. Manzaralar, dokular ve düz arka planlar burada rutin olarak yer alır. Dosya hala indirmeniz için sizindir. Sadece bir kesim değildir ve yeniden çalıştırma miktarı onu bir kesim yapmaz.

On dosya sıraya almadan önce bir dosya deneyin. Tek bir paket çekimini arka plan kaldırıcıya bırakın, PNG'yi indirin, ardından o aynı PNG'yi doğrudan sıkıştırıcıya gönderin ve "PNG daha küçük dosya boyutu" seçin. İki boyutu karşılaştırın ve hangisini gerçekten göndereceğinize karar verin. Eğer o kesim de bir belgeye gidecekse, bir görüntünün PDF'ye dönüştüğünde hangi sayfaya dönüştüğünü ayrı olarak ölçülür.