LeanImg

Πόσες εικόνες μπορώ να μετατρέψω μαζικά σε μια καρτέλα προγράμματος περιήγησης;

Τι κοστίζει πραγματικά μια μαζική μετατροπή μέσω προγράμματος περιήγησης: 10 αρχεία και 50 MB ανά εκτέλεση, ένα αρχείο τη φορά, και μια κωδικοποίηση AVIF που διαρκεί 10 δευτερόλεπτα το καθένα.

Ένας φάκελος με 300 αρχεία είναι αυτό που εννοούν οι περισσότεροι με τον όρο "μαζική μετατροπή εικόνων". Να τι κάνει πραγματικά μια καρτέλα προγράμματος περιήγησης με αυτό. Ο μετατροπέας της LeanImg δέχεται 10 αρχεία και 50 MB ανά παρτίδα, και τα επεξεργάζεται ένα προς ένα, αποκωδικοποιώντας και επανακωδικοποιώντας κάθε αρχείο πριν αγγίξει το επόμενο. Αυτό είναι το ανώτατο όριο. Είναι η τιμή του πράγματος που καθιστά το εργαλείο άξιο ανοίγματος: τίποτα που ρίχνετε σε αυτό δεν φεύγει ποτέ από τη μηχανή σας.

Κάθε άλλος μετατροπέας σε αυτόν τον τομέα ανεβάζει τα αρχεία σας σε έναν διακομιστή, τα μετατρέπει εκεί και υπόσχεται διαγραφή σε μία ή δύο ώρες. Αυτός δεν έχει διαδρομές API και καμία ενέργεια διακομιστή, οπότε δεν υπάρχει πουθενά να ανεβάσετε. Η αποκωδικοποίηση και η επανακωδικοποίηση συμβαίνουν και οι δύο στην καρτέλα σας, μέσω του createImageBitmap και των κωδικοποιητών WASM. Ο επεξεργαστής σας είναι ολόκληρος ο προϋπολογισμός.

Πόσα αρχεία μπορώ να μετατρέψω ταυτόχρονα;

Δέκα, στα τέσσερα εργαλεία που δέχονται μια παρτίδα: συμπίεση, μεγέθυνση, μετατροπή και αφαίρεση φόντου. Κάθε ένα από αυτά περιορίζει επίσης την παρτίδα στα 50 MB συνολικά σε όλα τα αρχεία. Τρία εργαλεία δέχονται ακριβώς μία εικόνα. Ο κοπτήρας και ο γεννήτρια εικονιδίων περιορίζουν αυτό το μεμονωμένο αρχείο στα 10 MB, και ο επεξεργαστής επιτρέπει 50 MB επειδή ένα μοντέλο 4x που τρέχει σε μια μικρή πηγή παράγει ακόμα μια μεγάλη PNG.

ΕργαλείοΑρχεία ανά παρτίδαΌριο μεγέθους
/compress-image1050 MB συνολικά
/resize-image1050 MB συνολικά
/convert1050 MB συνολικά
/remove-background1050 MB συνολικά
/crop-image110 MB
/icon-generator110 MB
/upscale-image150 MB

Τι συμβαίνει με κάθε αρχείο στην παρτίδα;

Ο βρόχος είναι διαδοχικός. Κάθε αρχείο αποκωδικοποιείται σε ακατέργαστους RGBA πίξελ, στη συνέχεια επανακωδικοποιείται στη στοχευμένη μορφή, και ο βρόχος περιμένει ένα αποτέλεσμα πριν ξεκινήσει το επόμενο. Εάν ένα αρχείο αποτύχει να αποκωδικοποιηθεί, σημειώνεται με ένα σφάλμα και η εκτέλεση συνεχίζεται, οπότε μια κατεστραμμένη PNG σε ένα σύνολο δέκα δεν σας κοστίζει τις άλλες εννέα. Ο συμπιεστής σπρώχνει τη δουλειά του σε έναν μόνο Web Worker ώστε η σελίδα να παραμένει ανταγωνιστική ενώ εργάζεται. Ο μετατροπέας κάνει τη δουλειά του στο κύριο νήμα με OffscreenCanvas. Κανένα από τα δύο δεν διασπείρει μια παρτίδα στους πυρήνες σας.

Τρεις συμπεριφορές ανά αρχείο πιάνουν τους ανθρώπους απροετοίμαστους. Η συμπίεση αφαιρεί όλα τα μεταδεδομένα, που σημαίνει EXIF, GPS, το προφίλ ICC και το ενσωματωμένο μικρογραφία, αν και η προσανατολισμός επιβιώνει. Η μετατροπή σε JPG ή PDF συνδυάζει τη διαφάνεια με το λευκό, καθώς καμία από τις μορφές δεν μεταφέρει κανάλι alpha. Ένα κινούμενο GIF χάνει κάθε καρέ μετά το πρώτο, επειδή κανένας κωδικοποιητής στη διαδρομή μετατροπής δεν γράφει κινούμενη εικόνα.

Ποιες μετατροπές μπορώ πραγματικά να μετατρέψω μαζικά;

Το μητρώο περιέχει 11 μορφές. Δέκα από αυτές αποκωδικοποιούν: JPG, PNG, WebP, AVIF, GIF, HEIC, SVG, TIFF, BMP και ICO. Μόνο πέντε κωδικοποιούν: JPG, PNG, WebP, AVIF και PDF. Έτσι, οι HEIC, SVG, TIFF, BMP, GIF και ICO είναι μονόδρομοι, που καλύπτουν τα 24 ζεύγη που δημοσιεύουμε. Μετατρέψτε έναν φάκελο HEIC iPhone σε JPG και κάθε αρχείο μετατρέπεται, που είναι η λύση για έναν υπολογιστή Windows που δείχνει αυτές τις φωτογραφίες ως κατεστραμμένα αρχεία. Ρωτήστε για την αντίστροφη διαδικασία και δεν υπάρχει κωδικοποιητής για να σας δώσει.

Το PDF είναι εκεί που το σχήμα μιας μαζικής μετατροπής μέσω προγράμματος περιήγησης φαίνεται πιο καθαρά. Κάθε εικόνα γίνεται το δικό της PDF μίας σελίδας. Αυτό είναι σχεδιασμένο, και δεν υπάρχει βήμα συγχώνευσης πουθενά στη διαδικασία, οπότε δέκα εικόνες σας δίνουν δέκα PDFs αντί για ένα έγγραφο δέκα σελίδων. Η εικόνα της σελίδας ενσωματώνεται ως JPEG με ποιότητα 92 μέσω του δικού κωδικοποιητή καμβά του προγράμματος περιήγησης, γι' αυτό και ένα JPG 538,6 KB βγήκε ως PDF 674,2 KB στην εκτέλεσή μας. Εάν χρειάζεστε ένα αρχείο με 40 σελίδες σε αυτό, αυτό δεν είναι το εργαλείο σας.

Δύο αρχεία JPG μετατράπηκαν σε δύο ξεχωριστά αρχεία PDF, το καθένα με το δικό του κουμπί λήψης
Δύο JPGs μέσα, δύο PDFs έξω. Ο μετατροπέας ποτέ δεν συγχωνεύει μια παρτίδα σε ένα έγγραφο.

Γιατί η παρτίδα μου επιβραδύνεται όταν επιλέγω AVIF;

Επειδή η κωδικοποίηση AVIF είναι ακριβή. Εκτελέσαμε την ίδια πηγή τρεις τρόπους, texture.jpg σε 3840x2160 και 538,6 KB, και χρονομετρήσαμε κάθε κωδικοποίηση.

ΣτόχοςSlider 80Slider 63Ταχύτητα κωδικοποίησης
JPEG286,1 KBδεν μετρήθηκεάμεσο
WebP290,3 KB200,6 KBάμεσο
AVIF312,7 KB186,9 KB10 έως 11 δευτερόλεπτα

Η στήλη slider-80 διαβάζεται ανάποδα μέχρι να καταλάβετε τι σημαίνει αυτός ο αριθμός για κάθε κωδικοποιητή. Για μια πηγή JPEG, η διαδρομή JPEG μας πολλαπλασιάζει τον slider σας με την ποιότητα που διαβάζει από τους πίνακες ποσοτικοποίησης της πηγής, οπότε μια πηγή ποιότητας 60 με slider 80 κωδικοποιεί σε 48. Οι WebP και AVIF το παίρνουν 80 κυριολεκτικά. Η έξυπνη προεπιλογή του AVIF είναι 63, και σε 63 κερδίζει σε μέγεθος: 186,9 KB έναντι 200,6 KB της WebP. Πληρώνετε σε πραγματικό χρόνο. Δέκα αρχεία AVIF σε μια διαδοχική παρτίδα είναι ένα διάλειμμα καφέ, και δεν υπάρχει εναλλακτική καμβά για AVIF όπως υπάρχει για JPG, PNG και WebP, οπότε μια αποτυχία κωδικοποιητή WASM σημαίνει ότι το αρχείο αποτυγχάνει. Ελέγξτε την υποστήριξη προγράμματος περιήγησης AVIF πριν δεσμευτείτε σε ολόκληρη την παρτίδα, και διαβάστε γιατί η αντιστοίχιση των μεγεθών εξόδου υπερβαίνει την αντιστοίχιση των αριθμών slider πριν αποφασίσετε τη μορφή καθόλου.

Πότε είναι ένα εργαλείο επιφάνειας εργασίας η σωστή απάντηση;

Μόλις η εργασία είναι μεγαλύτερη από δέκα αρχεία, ή μόλις χρειάζεστε κάτι που αυτά τα μηχανήματα δεν κάνουν. Ο ImageMagick's mogrify διασχίζει μια φωλιά φακέλων, κορεσμένο κάθε πυρήνα που έχετε και γράφει αποτελέσματα επί τόπου, κάτι που μια καρτέλα με ένα νήμα δεν μπορεί να προσεγγίσει. Ο MozJPEG είναι ο ίδιος κωδικοποιητής που μεταγλωττίζουμε σε WASM, και τρέχει πολύ πιο γρήγορα ως εγγενής δυαδικός. Τα εργαλεία επιφάνειας εργασίας συγχωνεύουν επίσης πολλές εικόνες σε ένα πολυσελίδωτο PDF, διατηρούν EXIF και ICC κατά τη διάρκεια της διαδικασίας, παρακολουθούν έναν φάκελο για νέες αφίξεις και σας επιτρέπουν να πληκτρολογήσετε ακριβείς διαστάσεις σε πίξελ. Ο κοπτήρας μας έχει οκτώ προκαθορισμένα αναλογίας και ένα πεδίο προσαρμοσμένου λόγου, χωρίς καμία είσοδο πλάτους και ύψους σε πίξελ, και επανακωδικοποιεί τις απώλειες σε μορφές με ποιότητα 92 που είναι σκληρά κωδικοποιημένες.

Τα εργαλεία ενός αρχείου παραμένουν σε ένα αρχείο για λόγους που δεν θα αλλάξουν σύντομα. Ο επικαλυπτικός τρέχει το Real-ESRGAN και δέχεται 32 megapixels εισόδου με WebGPU, περίπου 1,1 MP χωρίς αυτό. Ο αφαιρέτης φόντου κατεβάζει ένα μοντέλο IS-Net στην πρώτη εκτέλεση και επεξεργάζεται τα δέκα αρχεία του αυστηρά το ένα μετά το άλλο. Ο γεννήτρια εικονιδίων δέχεται μία εικόνα και γράφει επτά αρχεία από αυτήν, συμπεριλαμβανομένου ενός favicon.ico που περιλαμβάνει εκδόσεις 16, 32 και 48 πίξελ.

Τι είναι λοιπόν καλή μια μαζική μετατροπή μέσω προγράμματος περιήγησης;

Δέκα φωτογραφίες προϊόντων πριν από μια καταχώριση. Ένας φάκελος με στιγμιότυπα οθόνης για μια σελίδα εγγράφου. Οποιαδήποτε εικόνα δεν μπορείτε να παραδώσετε σε έναν διακομιστή ξένου: διαβατήρια, ιατρικές σάρωσεις, υπογεγραμμένα συμβόλαια, έργα πελατών υπό NDA. Αυτή η τελευταία ομάδα είναι ο λόγος που το χτίσαμε με αυτόν τον τρόπο, και η σελίδα απορρήτου το λέει με λιγότερες λέξεις. Όταν μια παρτίδα ολοκληρωθεί, το Download all δημιουργεί ένα ZIP στην καρτέλα και σας το παραδίδει, χωρίς καμία επιστροφή.

Δοκιμάστε το σχήμα του πριν σχεδιάσετε μια ροή εργασίας γύρω του. Ανοίξτε /convert, ρίξτε δέκα JPGs, κάντε κλικ στο WebP και παρακολουθήστε τις κάρτες ανά αρχείο να γεμίζουν μία προς μία. Εάν αυτό ολοκληρωθεί αρκετά γρήγορα για εσάς, το όριο των 10 αρχείων είναι ακαδημαϊκό. Εάν μετατρέπετε σάρωσεις σε PDF, διαβάστε πρώτα τι γίνεται πραγματικά ένα JPG μέσα σε ένα PDF, γιατί κάθε σελίδα βγαίνει σε 54 DPI.