LeanImg

Πώς μπορώ να αφαιρέσω το φόντο μιας εικόνας δωρεάν χωρίς υδατογράφημα;

Τι κάνει το μοντέλο IS-Net μέσα στην καρτέλα του προγράμματος περιήγησής σας, γιατί η κοπή είναι πάντα ένα μεγαλύτερο PNG και πώς να μειώσετε το PNG, με μετρημένα νούμερα.

Κάθε δωρεάν εργαλείο αφαίρεσης φόντου κάνει τις ίδιες δύο υποσχέσεις: χωρίς υδατογράφημα και χωρίς εγγραφή. Σχεδόν όλα τους θέλουν ακόμα το αρχείο σας. Δημοσιεύεται σε έναν διακομιστή, ένα μοντέλο τρέχει εκεί και μια πολιτική διατήρησης υπόσχεται διαγραφή σε μία ώρα ή μία ημέρα. Το δικό μας δεν λειτουργεί έτσι. Ο αφαιρέτης φόντου φορτώνει το μοντέλο IS-Net στην καρτέλα του προγράμματος περιήγησής σας και το εκτελεί στον δικό σας υπολογιστή, έτσι ώστε η εικόνα να μην γίνει ποτέ το σώμα ενός HTTP request.

Αυτό που επιστρέφει είναι πάντα ένα PNG με κανάλι alpha, και είναι συνήθως μεγαλύτερο από το αρχείο που εισάγατε. Αυτό ξαφνιάζει τους ανθρώπους. Η διαφάνεια έχει κόστος και το PNG είναι η μόνη ευρέως υποστηριζόμενη μορφή που θα την μεταφέρει.

Φεύγει η εικόνα από τον υπολογιστή μου;

Όχι. Δεν υπάρχει διαδρομή API σε αυτή τη βάση κώδικα και καμία ενέργεια διακομιστή, οπότε δεν υπάρχει κανένα endpoint που θα μπορούσε να λάβει την εικόνα σας ακόμα και κατά λάθος. Η μόνη δικτυακή κίνηση που κάνει το εργαλείο είναι μια fetch ίδιας προέλευσης για τα βάρη του μοντέλου, τα οποία βρίσκονται κάτω από το /ml-assets στον δικό μας τομέα, και θα τα κατεβάσετε μόνο μία φορά. Μετά από αυτό, ο περιηγητής σας τα έχει αποθηκευμένα στην κρυφή μνήμη. Το αρχείο σας διαβάζεται με createImageBitmap, παραδίδεται στο μοντέλο ως pixels και γράφεται πίσω ως Blob που ζει στην καρτέλα μέχρι να το κατεβάσετε ή να την κλείσετε. Δεν υπάρχει τίποτα για να προγραμματιστεί για διαγραφή αργότερα γιατί τίποτα δεν φτάνει πουθενά. Η σελίδα απορρήτου είναι σύντομη για αυτόν τον λόγο.

Τι κάνει πραγματικά το μοντέλο IS-Net;

Το IS-Net είναι ένα δίκτυο τμηματοποίησης σημαντικών αντικειμένων από την έρευνα DIS. Διαβάζει ολόκληρο το καρέ και προβλέπει, ανά pixel, πόσο πιθανό είναι αυτό το pixel να ανήκει στο ένα πράγμα που αφορά η εικόνα. Αυτή η πρόβλεψη γίνεται το κανάλι alpha του εξόδου PNG. Δεν ξέρει τι είναι ένας άνθρωπος ή ένα μπουκάλι σαμπουάν. Ξέρει τη σημασία. Γι' αυτό ένας μόνο υποκείμενος σε μια απλή επιφάνεια κόβεται καθαρά ενώ μια ομάδα ανθρώπων σε έναν πολυσύχναστο δρόμο συχνά δεν κόβεται.

Η εκτέλεση είναι ONNX Runtime Web και η μηχανή ζητά τη συσκευή WebGPU. Όταν λείπει το WebGPU, η βιβλιοθήκη επιστρέφει αυτόματα σε CPU και θα ολοκληρώσει, πιο αργά. Τα αρχεία εκτελούνται ένα-ένα. Ρίξτε δέκα και θα περιμένετε μέσα από δέκα περάσματα συμπερασμού, οπότε μια παρτίδα διακοπών είναι ένα διάλειμμα καφέ.

Γιατί το κομμένο PNG είναι μεγαλύτερο από το JPG που εισήγαγα;

JPEG δεν μεταφέρει κανάλι alpha σε καμία λειτουργία, οπότε ένα κομμένο δεν μπορεί να παραμείνει JPEG. Η έξοδος πρέπει να είναι PNG, που είναι χωρίς απώλειες. Δύο πράγματα συμβαίνουν ταυτόχρονα. Οι αποκωδικοποιημένοι pixels αποθηκεύονται ακριβώς, με όλα τα artifacts συμπίεσης, και κάθε pixel αποκτά ένα byte alpha που δεν είχε ποτέ πριν. Η αποθήκευση φωτογραφικών λεπτομερειών χωρίς απώλειες είναι ακριβή. Για κλίμακα, το texture.jpg στο σετ δοκιμών μας είναι 3840x2160 και ζυγίζει 538,6 KB, ενώ το alpha.png είναι 900x606 με διαφάνεια και ζυγίζει 942,4 KB. Αυτό είναι περίπου 1,75 φορές τα bytes με περίπου το ένα δέκατο του αριθμού των pixels. Κανείς δεν πρόσθεσε τίποτα στην εικόνα σας. Απλώς πληρώνετε τώρα τιμές PNG.

Πώς μπορώ να κάνω το κομμένο PNG μικρότερο;

Στείλτε το στον συμπιεστή εικόνας και επιλέξτε μία από τις δύο λειτουργίες PNG. Και οι δύο θα διατηρήσουν το κανάλι alpha. "PNG χωρίς συμπίεση" εκτελεί το oxipng σε επίπεδο 3, το οποίο είναι χωρίς απώλειες: τα ίδια pixels, λιγότερα bytes. "PNG μικρότερο μέγεθος αρχείου" εκτελεί το imagequant, το οποίο μειώνει την εικόνα σε μια παλέτα. Να τι έκανε το καθένα στο alpha.png, το διαφανές PNG 900x606 παραπάνω.

Και οι δύο λειτουργίες PNG στον συμπιεστή μας, μετρημένες στο ίδιο διαφανές αρχείο 900x606.
ΛειτουργίαΤι κάνειΑποτέλεσμαΑλλαγή
Αρχείο πηγής900x606 PNG με πραγματικό κανάλι alpha942,4 KBβάση
PNG χωρίς συμπίεσηoxipng επίπεδο 3, πλήρως χωρίς απώλειες383,9 KB-59%
PNG μικρότερο μέγεθος αρχείουimagequant, μείωση παλέτας98,3 KB-90%
Κάρτα αποτελέσματος συμπιεστή που δείχνει ένα διαφανές PNG να πηγαίνει από 942,4 KB σε 98,3 KB σε λειτουργία παλέτας
Λειτουργία παλέτας σε ένα διαφανές PNG: 942,4 KB κάτω από 98,3 KB, με το alpha άθικτο.

Η διαδρομή παλέτας καταναλώνει πρώτα τα gradients. Οι επίπεδες λογότυπες και οι φωτογραφίες προϊόντων επιβιώνουν καλά. Ένα φράντζα μαλλιών πάνω από μια απαλή σκιά είναι όπου εμφανίζεται η ταινία, οπότε κοιτάξτε το αποτέλεσμα σε πλήρη μεγέθυνση πριν το στείλετε. Η συμπίεση αφαιρεί επίσης κάθε κομμάτι μεταδεδομένων: EXIF, GPS, ICC προφίλ και ενσωματωμένη μικρογραφία. Η προσανατολισμός επιβιώνει.

Μπορεί να βάλει ένα λευκό φόντο πίσω από το υποκείμενο;

Δεν θα το κάνει. Ο αφαιρέτης γράφει alpha και σταματά εκεί. Δεν υπάρχει χρώμα πλήρωσης και καμία εικόνα αντικατάστασης πουθενά στο εργαλείο. Αν θέλετε λευκό πίσω από το υποκείμενο, περάστε το τελειωμένο PNG μέσω του PNG σε JPG. Οποιαδήποτε μορφή στόχου χωρίς κανάλι alpha αποκτά τη διαφάνεια συνδυασμένη με λευκό, οπότε το JPEG και το PDF σας δίνουν ένα λευκό φόντο χωρίς επιπλέον βήμα. Αν χρειάζεστε το κομμένο σε διαφορετικό μέγεθος pixel, ο αναδιαμορφωτής γράφει PNG χωρίς απώλειες, έτσι ώστε το alpha να επιβιώνει και σε αυτή τη διαδρομή. Ο κόφτης κάνει το ίδιο για PNG, ένα αρχείο τη φορά μέχρι 10 MB.

Ποια αρχεία μπορώ να εισάγω και πόσα;

Δέκα αρχεία και 50 MB ανά παρτίδα. Ο επιλογέας δέχεται JPEG, PNG, WebP, AVIF, GIF, BMP και ICO. SVG και HEIC απορρίπτονται πριν ξεκινήσει οποιαδήποτε εργασία μοντέλου, επειδή το Chrome δεν μπορεί να αποκωδικοποιήσει κανένα από τα δύο: το SVG είναι XML χωρίς pixels, και το HEIC είναι ένα δοχείο HEIF που μόνο το Safari αποδίδει. Για ένα HEIC iPhone, περάστε πρώτα το HEIC σε PNG και ρίξτε το αποτέλεσμα στον αφαιρέτη, και γιατί το Windows δεν μπορεί να ανοίξει αυτό το αρχείο εξηγεί τι υπάρχει μέσα στο δοχείο. Κάθε έξοδος διατηρεί το όνομα βάσης του αρχείου πηγής με επέκταση .png, οπότε θα τα αναγνωρίσετε στον φάκελο λήψεών σας, και αρκετά αποτελέσματα ταυτόχρονα κατεβαίνουν ως background-removed.zip.

Γιατί το κομμένο μου επέστρεψε εντελώς κενό;

Μια εικόνα χωρίς σημαντικό υποκείμενο επιστρέφει ένα πλήρως διαφανές PNG, και η πτώση μεγέθους μπορεί ακόμη και να διαβαστεί ως εξοικονόμηση. Ελέγχουμε γι' αυτό, ώστε να μην στείλετε κατά λάθος ένα κενό. Μετά από κάθε εκτέλεση, η μηχανή δείχνει το κανάλι alpha σε μέγεθος 1024 px και μετρά τα pixels που κάθονται σε alpha 64 ή παραπάνω. Αν κάτω από 0,1% του καρέ επιβιώσει, η κάρτα σας λέει ότι δεν βρέθηκε υποκείμενο. Τοπία, υφές και επίπεδα φόντα προσγειώνονται εκεί τακτικά. Το αρχείο είναι ακόμα δικό σας για λήψη. Απλώς δεν είναι κομμένο, και καμία ποσότητα επανεκτέλεσης δεν θα το κάνει ένα.

Δοκιμάστε ένα αρχείο πριν προγραμματίσετε δέκα. Ρίξτε μια μόνο φωτογραφία προϊόντος στον αφαιρέτη φόντου, κατεβάστε το PNG, στη συνέχεια στείλτε το ίδιο PNG κατευθείαν στον συμπιεστή και επιλέξτε "PNG μικρότερο μέγεθος αρχείου". Συγκρίνετε τα δύο μεγέθη και αποφασίστε ποιο θα στείλετε πραγματικά. Αν αυτό το κομμένο πηγαίνει επίσης σε ένα έγγραφο, η σελίδα που μετατρέπεται σε PDF μετριέται ξεχωριστά.